繁体   English   中英

PHP表单处理,仅填写字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM