[英]PHP Form Processing with only filled in fields
我有一个具有8个属性的PHP类和一个具有40个(8 * 5)文本框的HTML表单,每个对象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不为空。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.