在表单中传递多行输入并在PHP中迭代它们?

时间:2012-12-02 17:32:00

标签: php forms

我猜这个问题之前已被问过,但是我做了一些搜索,但没有找到答案(可能是因为我缺乏术语)。

我正在处理一个在表中显示一堆输入行的应用程序,当提交表单时,我需要迭代每个输入,用输入的值更新数据库。我一直在做的是命名这样的输入:

<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个输入,通常是几十行。这对我来说似乎有些混乱,我想知道是否有更好/更清洁的方式吗?

1 个答案:

答案 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
}