我使用foreach循环生成以下html表单。在$ people内,有4个$ person数组,因此下面的输入集重复4次。
<form action="handler.php" method="post">
<?php foreach($people as $person) { ?>
<input type="text" name="first_name">
<input type="text" name="middle_name">
<input type="text" name="last_name">
<input type="hidden" name="<?php echo $person['id'];?>
<?php } ?>
</form>
提交时,它只传递最后一个,我希望它将每个集合($ person)作为一个数组传递(如下所示),这样我就可以有一个很好的数组,每个都可以工作用。
Array([0]=>Array(['first_name']=>'James'['middle_name']=>'Green'['last_name']=>'McIntosh')
[1]=>Array(['first_name']=>'Bian'['middle_name']=>'Chip'['last_name']=>'Simpson)'
等。
但是当我回来时,我无法弄清楚如何让每个人进入一个单独的阵列。我认为它可能需要一些与“name”属性有点棘手的东西,但还未能让它工作。
答案 0 :(得分:1)
这可能就是你要找的东西:
<form action="handler.php" method="post">
<?php foreach($people as $person) {
echo sprintf('<input type="text" name="first_name[%s]">', $person['id']);
echo sprintf('<input type="text" name="middle_name[%s]">', $person['id']);
echo sprintf('<input type="text" name="last_name[%s]">', $person['id']);
} ?>
</form>
答案 1 :(得分:1)
<?php
foreach ($people as $person) {
printf('<input type="text" name="person[%d][first_name]">', $person['id']);
printf('<input type="text" name="person[%d][middle_name]">', $person['id']);
printf('<input type="text" name="person[%d][last_name]">', $person['id']);
}
?>
然后:
var_dump($_POST['person']);