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

Nat*_*ate 2 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"> ...
.
.
.
Run Code Online (Sandbox Code Playgroud)

然后在PHP中执行此操作:

for($i = 1; isset($_POST['name' . $i]); $i++)
{
    $name = $_POST['name' . $i];
    $gender = $_POST['gender' . $i];
    // update DB with input values
}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,可以添加和删除行,每行大约有6个输入,通常有几十行.这对我来说似乎有些混乱,我想知道是否有更好/更清洁的方式呢?

GBD*_*GBD 9

最好采取以下方式采取 HTML input array

<input type="text" name="name[]">
<input type="text" name="gender[]">
Run Code Online (Sandbox Code Playgroud)

在PHP中,您必须执行以下操作

$cnt = count($_POST['name']);
for($i=0;$i<$cnt;$i++){
   echo $_POST['name'][$i];
   echo $_POST['gender'][$i];
   ....
   // do any update with database
}
Run Code Online (Sandbox Code Playgroud)