Alex Rivera | Logout

What is the expected order of an array submitted in an HTML form?

Asked 2010-09-14T20:09:14.093
13

I'm wondering if there is any sort of guarantee on the order of POST variables I will see on the server side.

My use case is I have a form that a user will fill out to enter a list of names and emails. I'm using a table rows, each of which has two inputs:

<table>
<tr>
<td><input type='text' name='name[]' /></td>
<td><input type='text' name='email[]' /></td>
</tr>
<tr>
<td><input type='text' name='name[]' /></td>
<td><input type='text' name='email[]' /></td>
</tr>
</table>

The row might be cloned via javascript to allow the user to type in more names and emails so I won't know ahead of time how many will be submitted.

On the server side, I see $_POST['email'] and $_POST['name'] set but I am wondering if I can safely assume $_POST['email'][0] will correspond to $_POST['name'][0], $_POST['email'][1] will correspond to $_POST['name'][1], and so on. Some basic testing seem to indicate yes but I'm wondering if there is a guarantee or if I'm just getting lucky.

Edit
Report

1 Answer

11

What is the expected order of an array submitted in an HTML form?

According to the HTML specification:

The control names/values are listed in the order they appear in the document

http://www.w3.org/TR/html401/interact/forms.html#form-content-type

However, it's better coding practice to employ an indexed array approach as shown in prodigitalson's answer.

answered 2010-09-14T20:26:33.037

Your Answer