我有一个表格,其中包含一个人的名字和姓氏。用户可以使用链接添加多个人,通过JS创建新的输入字段。以下是包含2个人的表单示例:
<form action="" method="post">
<input type="text" class="required" name="people[first][]" />
<input type="text" class="required" name="people[last][]" />
<input type="text" class="required" name="people[first][]" />
<input type="text" class="required" name="people[last][]" />
<input type="submit" name="submit">
</form>
我正试图想出一种将这些数据插入数据库的方法。我尝试过使用:
foreach ($_POST['people'] as $person) {
foreach ($person as $value) {
echo $value . '<br/>';
}
}
..导致
名字1
名字2
姓氏1
姓氏2
我正在尝试以某种方式对结果进行分组,以便为每个first name x
+ last name x
组合插入新行。
答案 0 :(得分:4)
像这样创建输入元素:
<input type="text" name="people[0][first]" />
<input type="text" name="people[0][last]" />
<input type="text" name="people[1][first]" />
<input type="text" name="people[1][last]" />
在你的PHP中:
foreach ($_POST['people'] as $person) {
echo $person['first'].' '.$person['last'].'<br />';
}
答案 1 :(得分:1)
$_POST['people']['first']
是一系列名字
$_POST['people']['last']
是一个姓氏数组。
您可以将它们合并到一个数组数组中,如下所示:
$people = $_POST['people'];
$length = count($people['first']);
for($i = 0; $i < $length; $i++)
$temp[] = array('first' => $people['first'][$i], 'last' => $people['last'][$i]);
$people = $temp;
$people
中生成的数组将是一个关联数组数组,可能如下所示:
Array
(
[0] => Array
(
[first] => Jim
[last] => Smith
)
[1] => Array
(
[first] => Jenny
[last] => Johnson
)
)
这相当于你通过修改HTML得到的数组,因为bsdnoobz表明你也可以这样做。迭代它也是一样的:
foreach ($people as $person) {
echo $person['first'] . ' ' . $person['last'] . '<br />';
}