1

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.

5 Answers 5

4

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>
Sign up to request clarification or add additional context in comments.

Comments

4

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>

Comments

2

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>

Comments

2

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>

Comments

0

Your syntax is not correct: name ="lang_learn[0]lang" must be name ="lang_learn[0][lang]"

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.