如何格式化属于组

时间:2017-08-30 11:58:48

标签: php html-input

如果这个标题令人困惑,我很抱歉,我会尽力描述我的问题。

所以我在表单中有一些输入,我想将它们“组合”在一起,因为它们是同一个实体的一部分。

我知道使用括号以便将它们放入一个数组(通过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
    )

)

感谢。

1 个答案:

答案 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 -->