8つのプロパティを持つPHPクラスと、オブジェクトごとに8つの40(8 * 5)テキストボックスを持つHTMLフォームがあるため、ユーザーは一度に5つのオブジェクトのデータを入力できます。
ボックスのセットごとに、クラスのオブジェクトを作成してデータベースに保存します。たとえば、ユーザーが10個のボックス(2セット)に入力した場合、2つのオブジェクトを作成して保存する必要があります。
8つのプロパティを持つPHPクラスと、オブジェクトごとに8つの40(8 * 5)テキストボックスを持つHTMLフォームがあるため、ユーザーは一度に5つのオブジェクトのデータを入力できます。
ボックスのセットごとに、クラスのオブジェクトを作成してデータベースに保存します。たとえば、ユーザーが10個のボックス(2セット)に入力した場合、2つのオブジェクトを作成して保存する必要があります。
私があなたを正しく理解しているなら、ここにHTMLフォームの例があります:
<form action="" method="post">
<fieldset>
<legend>Group 1</legend>
<div>
<input type="text" name="groups[0][first_name]" />
</div>
<div>
<input type="text" name="groups[0][last_name]" />
</div>
</fieldset>
<fieldset>
<legend>Group 2</legend>
<div>
<input type="text" name="groups[1][first_name]" />
</div>
<div>
<input type="text" name="groups[1][last_name]" />
</div>
</fieldset>
<fieldset>
<legend>Group 3</legend>
<div>
<input type="text" name="groups[2][first_name]" />
</div>
<div>
<input type="text" name="groups[2][last_name]" />
</div>
</fieldset>
</form>
フィールド名、フィールドのグループ化方法に注意してください。このようなフォームを送信すると、$_POSTスーパーグローバル配列には次の構造の$_POST['groups']配列が含まれます。
Array
(
[0] => Array
(
[first_name] =>
[last_name] =>
)
[1] => Array
(
[first_name] =>
[last_name] =>
)
[2] => Array
(
[first_name] =>
[last_name] =>
)
)
このようなデータは、次のようなコードで簡単に処理できます。
foreach ($_POST['groups'] as $group) {
$group = array_filter($group);
if (!empty($group)) {
// do something with group
}
}
この小さな例は、送信されたすべてのグループをループします。array_filter()関数は、各$ group配列からすべての空の値を破棄し、!empty(...)は$groupが空でないことを確認します。