0

我有一个 PHP 类,它有 8 个属性和一个 HTML 表单,它有 40 个(8*5)文本框,每个对象 8 个,所以用户可以一次输入 5 个对象的数据。

对于每组框,我想创建一个类的对象并将其保存到我的数据库中。例如,如果用户填写了 10 个框(两组),则应创建并保存两个对象。

4

1 回答 1

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 不为空。

于 2012-06-19T13:59:40.053 回答