仅填写字段的PHP表单处理

仅填写字段的PHP表单处理,php,Php,我有一个PHP类,它有8个属性 还有一个HTML表单,它有40个(8*5)文本框,每个对象8个,因此用户可以一次输入5个对象的数据 对于每一组框,我想创建一个类的对象并将其保存到我的数据库中。例如,如果用户填写了10个框(两组),则应创建并保存两个对象。如果我理解正确,以下是HTML表单示例: <form action="" method="post"> <fieldset> <legend>Group 1</legend> &

我有一个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>
您可以使用如下代码轻松处理此类数据:

foreach ($_POST['groups'] as $group) {
  $group = array_filter($group);

  if (!empty($group)) {
    // do something with group
  }
}

这个小例子遍历所有提交的组。函数将丢弃每个$group数组中的所有空值,并且!empty(…)将确保$group不为空。

那么您的问题是什么?你是不是在你的表格上做了一些检查来确定填写了多少字段……还有,为什么有这么多字段。最初只显示5个字段,并提供一个“添加另一个用户”按钮,单击该按钮时会创建5个以上的字段。这会让你更好地控制自己。
foreach ($_POST['groups'] as $group) {
  $group = array_filter($group);

  if (!empty($group)) {
    // do something with group
  }
}