我试图弄清楚如何遍历从数据库动态提取的多个POST表单数据,然后将修改后的数据重新提交到另一个表。由于某种原因(可能是高龄),我似乎无法提出有效的解决方案。
我已经在一个表(称为名册)中循环出所有记录,并且需要将其提交到另一表(称为roster2)中。形式类似于以下内容:
<form name="name" action="form.php" method="post">
<input type="text" name="name1" value="15">
<input type="text" name="attended" value="1">
<input type="checkbox" name="nameid_12" value="12">
<input type="text" name="name2" value="8">
<input type="text" name="attended" value="1">
<input type="checkbox" name="nameid_6" value="6">
</form>
“名称”和“名称标识”字段将始终更改,并且显示的记录数将始终不同(一天可能是5条,下一天可能是100条)。遍历POST数据以将其提交到数据库并使所有关联保持完整的最佳方法是什么?我对使用PHP还是比较陌生,但似乎无法找出实现此目的的好方法。
如果要动态生成它们,我建议使用PHP将每个表单的ID放在该表单的输入中。因此,您的原始表单将以以下名称结尾:
<input type="text" name="name[12]" value="15">
<input type="text" name="attended[12]" value="1">
<input type="checkbox" name="nameid[12]" value="12">
<input type="text" name="name[6]" value="8">
<input type="text" name="attended[6]" value="1">
<input type="checkbox" name="nameid[6]" value="6">
然后,您的数组将具有与其表单ID相对应的键。数组结构如下所示。
Array (
[name] => Array ( [12] => 15, [6] => 8 )
[attended] => Array ( [12] => 1, [6] => 1 )
[nameid] => Array ( [12] => 12 [6] => 6 )
)
现在,我们需要找出今天实际存在的ID。array_keys()函数从任何源数组生成键数组。三个元素中每个元素的键都是相同的,因此我从[name]中任意选取了键。
$id_array = array_keys($_POST['name']);
然后,要访问POST数组的每个元素,我们将使用一个foreach。
foreach ($id_array as $id) {
//assign variables
$name = $_POST['name'][$id];
$attended = $_POST['attended'][$id];
$nameid = $_POST['nameid'][$id];
//store
//Using whichever database style you like. I prefer PDO.
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句