我猜这个问题之前已被问过,但是我做了一些搜索,但没有找到答案(可能是因为我缺乏术语)。
我正在处理一个在表中显示一堆输入行的应用程序,当提交表单时,我需要迭代每个输入,用输入的值更新数据库。我一直在做的是命名这样的输入:
<input type="text" name="name1"><input type="text" name="gender1"> ...
<input type="text" name="name2"><input type="text" name="gender2"> ...
<input type="text" name="name3"><input type="text" name="gender3"> ...
.
.
.
然后在PHP中执行此操作:
for($i = 1; isset($_POST['name' . $i]); $i++)
{
$name = $_POST['name' . $i];
$gender = $_POST['gender' . $i];
// update DB with input values
}
在我的应用程序中,可以添加和删除行,每行大约有6个输入,通常是几十行。这对我来说似乎有些混乱,我想知道是否有更好/更清洁的方式吗?
答案 0 :(得分:8)
最好采用HTML input array
<input type="text" name="name[]">
<input type="text" name="gender[]">
在PHP中,您必须执行以下操作
$cnt = count($_POST['name']);
for($i=0;$i<$cnt;$i++){
echo $_POST['name'][$i];
echo $_POST['gender'][$i];
....
// do any update with database
}