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