如果这个标题令人困惑,我很抱歉,我会尽力描述我的问题。
所以我在表单中有一些输入,我想将它们“组合”在一起,因为它们是同一个实体的一部分。
我知道使用括号以便将它们放入一个数组(通过PHP),例如使用复选框时,但我的情况有点不同。
我有person
的3个输入,并且在表单中可以有多个people
。
如果我在表格中只有一个人,那就是它的样子:
<input type="text" name="first_name"/>
<input type="text" name="last_name"/>
<input type="text" name="email"/>
但是,我需要允许多个people
,我希望它们都能在PHP中的一个数组中出现,如下所示:
// print_r($_POST['people']);
array(
[0] => array(
'first_name'=>'john'
'last_name' => 'smith'
'email'=>'john.smith@example.com'
)
[1] => array(
'first_name'=>'john2'
'last_name' => 'smith2'
'email'=>'john.smith@example.com2'
)
)
我试过(1):
<input type="text" name="people[][first_name]"/>
<input type="text" name="people[][last_name]"/>
<input type="text" name="people[][email]"/>
我尝试过(2):
<input type="text" name="people[first_name][]"/>
<input type="text" name="people[last_name][]"/>
<input type="text" name="people[email][]"/>
我尝试过(3):
<input type="text" name="people[][first_name][]"/>
<input type="text" name="people[][last_name][]"/>
<input type="text" name="people[][email][]"/>
以上所有内容都没有在我上面提到的结构中实现。
如何使$_POST['people']
看起来像我上面显示的数组?
编辑:
以下是(1)产生的内容:
Array
(
[0] => Array
(
[first_name] => john
)
[1] => Array
(
[last_name] => smith
)
[2] => Array
(
[email] => john.smith@example.com
)
[3] => Array
(
[first_name] => john2
)
[4] => Array
(
[last_name] => smith2
)
[5] => Array
(
[email] => john.smith@example.com2
)
)
感谢。
答案 0 :(得分:1)
您必须明确将索引设置为组项目。在你的情况下,它将是:
<form method="POST" action="">
<input type="text" name="people[0][first_name]"/>
<input type="text" name="people[0][last_name]"/>
<input type="text" name="people[0][email]"/>
<hr />
<input type="text" name="people[1][first_name]"/>
<input type="text" name="people[1][last_name]"/>
<input type="text" name="people[1][email]"/>
<hr />
<input type="text" name="people[2][first_name]"/>
<input type="text" name="people[2][last_name]"/>
<input type="text" name="people[2][email]"/>
<hr />
<input type="submit" name="" value="" />
</form>
如果javascript添加了新字段,他们的名字也应该是明确的索引:
name="people[4][email]"
name="people[5][email]"
<!-- etc -->