2

これは以前に尋ねられたと思いますが、検索を行っても答えが見つかりませんでした(おそらく用語が不足しているためです)。

私はテーブルに入力の行の束を表示するアプリケーションに取り組んでおり、フォームが送信されると、入力の値でデータベースを更新するすべての入力を繰り返す必要があります。私がやってきたことは、次のような入力の命名です。

<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つの入力があり、多くの場合、数十の行があります。これは私にはちょっと厄介なように思えますが、それを行うためのより良い/よりクリーンな方法があるかどうか疑問に思っていますか?

4

1 に答える 1

10

次の方法で使用することをお勧めします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
}
于 2012-12-02T17:36:43.570 に答える