我有一个 PHP 类,它有 8 个属性和一个 HTML 表单,它有 40 个(8*5)文本框,每个对象 8 个,所以用户可以一次输入 5 个对象的数据。
对于每组框,我想创建一个类的对象并将其保存到我的数据库中。例如,如果用户填写了 10 个框(两组),则应创建并保存两个对象。
我有一个 PHP 类,它有 8 个属性和一个 HTML 表单,它有 40 个(8*5)文本框,每个对象 8 个,所以用户可以一次输入 5 个对象的数据。
对于每组框,我想创建一个类的对象并将其保存到我的数据库中。例如,如果用户填写了 10 个框(两组),则应创建并保存两个对象。
如果我理解正确,这里是 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 不为空。