Reputation: 35
When i try to submit this simple test form to PHP:
<form action="test.php" method="post">
<input name ="lang_learn[0]lang" type="text" value="1"><br>
<input name ="lang_learn[0]level" type="text" value="2"><br>
<input name ="lang_learn[1]lang" type="text" value="3"><br>
<input name ="lang_learn[1]level" type="text" value="4"><br>
<input type="submit">
</form>
i expect to have in the $_POST array something like this:
Array
(
[lang_learn] => Array
(
[0] => Array ([lang] => 1, [level] => 2)
[1] => Array ([lang] => 3, [level] => 4)
)
)
instead i get this:
Array
(
[lang_learn] => Array
(
[0] => 1
[1] => 4
)
)
i tried with different installations over different servers, and i always get the same result. where is the problem? reading around this should be the right way to do that.
Upvotes: 1
Views: 130
Reputation: 6905
Your syntax is not correct: name ="lang_learn[0]lang"
must be name ="lang_learn[0][lang]"
Upvotes: 0
Reputation: 2340
You probably need to do this:
<form action="test.php" method="post">
<input name ="lang_learn[0][lang]" type="text" value="1"><br>
<input name ="lang_learn[0][level]" type="text" value="2"><br>
<input name ="lang_learn[1][lang]" type="text" value="3"><br>
<input name ="lang_learn[1][level]" type="text" value="4"><br>
<input type="submit">
</form>
Upvotes: 2
Reputation: 20899
You need to use sub-arrays, like you would in PHP. Each key should be surrounded with [
and ]
. Try this...
<form action="test.php" method="post">
<input name ="lang_learn[0][lang]" type="text" value="1"><br>
<input name ="lang_learn[0][level]" type="text" value="2"><br>
<input name ="lang_learn[1][lang]" type="text" value="3"><br>
<input name ="lang_learn[1][level]" type="text" value="4"><br>
<input type="submit">
</form>
Upvotes: 4
Reputation: 437376
The names of the input fields need fixing:
<input name ="lang_learn[0][lang]" type="text" value="1"><br>
<input name ="lang_learn[0][level]" type="text" value="2"><br>
<input name ="lang_learn[1][lang]" type="text" value="3"><br>
<input name ="lang_learn[1][level]" type="text" value="4"><br>
Upvotes: 4
Reputation: 891
Try this,
<form action="test.php" method="post">
<input name ="lang_learn[0][lang]" type="text" value="1"><br>
<input name ="lang_learn[0][level]" type="text" value="2"><br>
<input name ="lang_learn[1][lang]" type="text" value="3"><br>
<input name ="lang_learn[1][level]" type="text" value="4"><br>
<input type="submit">
</form>
Upvotes: 2