Как отформатировать название входов, которые принадлежат группе

Извините за это название, если оно сбивает с толку, постарался описать мой вопрос.

Итак, у меня есть несколько входов в форме, которые я хочу «сгруппировать», так как они являются частью одной и той же сущности.

Я знаю, как использовать скобки, чтобы они помещались в один массив (с помощью PHP), например, при использовании флажков, но моя ситуация немного отличается.

У меня есть 3 входа для person и, в форме, может быть несколько 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'=>'[email protected]'
)
[1] => array(
'first_name'=>'john2'
'last_name' => 'smith2'
'email'=>'[email protected]'
)
)

Я пытался (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] => [email protected]
)

[3] => Array
(
[first_name] => john2
)

[4] => Array
(
[last_name] => smith2
)

[5] => Array
(
[email] => [email protected]
)

)

Благодарю.

0

Решение

Ты должен эксплицитно установить индекс для группы элементов. В вашем случае это будет:

<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 -->
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]