Was ist die erwartete Reihenfolge eines Arrays in einem HTML-Formular?

8

Ich frage mich, ob es irgendeine Art von Garantie für die Reihenfolge der POST-Variablen gibt, die ich auf der Serverseite sehen werde.

Mein Anwendungsfall ist ein Formular, das ein Benutzer ausfüllen muss, um eine Liste mit Namen und E-Mails einzugeben. Ich verwende eine Tabelle Zeilen, von denen jede zwei Eingänge hat:

%Vor%

Die Zeile könnte über JavaScript geklont werden, damit der Benutzer mehr Namen und E-Mails eingeben kann, damit ich nicht vorher weiß, wie viele Beiträge gesendet werden.

Auf der Serverseite sehe ich $ _POST ['email'] und $ _POST ['name'] gesetzt, aber ich frage mich, ob ich sicher annehmen kann $ _POST ['email'] [0] entspricht $ _POST ['name'] [0], $ _POST ['email'] [1] entspricht $ _POST ['name'] [1] und so weiter. Einige grundlegende Tests scheinen ja zu zeigen, aber ich frage mich, ob es eine Garantie gibt oder ob ich nur Glück habe.

    
jhchen 14.09.2010, 20:09
quelle

4 Antworten

12

warum nicht einen Gruppierungsschlüssel wie:

hinzufügen %Vor%

und dann stellen Sie die user Indizes beim Klonen basierend auf der aktuellen Zahl manuell ein. Auf diese Weise ist schon alles zusammengelegt.

    
prodigitalson 14.09.2010, 20:13
quelle
7
  

Was ist die erwartete Reihenfolge eines Arrays?   in einem HTML-Formular eingereicht?

Gemäß der HTML-Spezifikation:

  

Die Namen / Werte der Steuerung sind in aufgelistet   die Reihenfolge, in der sie im Dokument erscheinen

Ссылка

Es ist jedoch eine bessere Kodierungspraxis, einen indizierten Array-Ansatz zu verwenden, wie in der Antwort von prodigitalson gezeigt.

    
webbiedave 14.09.2010 20:26
quelle
1

Die Daten werden in der gleichen Reihenfolge wie im Formular angezeigt. Also erste Reihe haben Schlüssel 0, zweite Reihe - 1.

    
Vaidas Zilionis 14.09.2010 20:14
quelle
0

Wie Vaidas Zilionis sagte, werden die Daten genau in der Reihenfolge angezeigt, in der sie im Formular erscheinen, siehe W3Cs Spezifikation HTML 4.01 :

  

Anwendung / x-www-form-urlencoded
[...]   2. Die Steuerelementnamen / -werte werden in der Reihenfolge aufgelistet, in der sie im Dokument angezeigt werden .

     

multipart / form-data
[...]   Eine Nachricht "multipart / form-data" enthält eine Reihe von Teilen, die jeweils eine erfolgreiche Kontrolle darstellen. Die Teile werden in der Reihenfolge, in der die entsprechenden Steuerelemente im Dokumentdatenstrom angezeigt werden, an den Verarbeitungsagenten gesendet.

.

    
Archimedix 14.09.2010 20:25
quelle

Tags und Links