【问题标题】:How do I build and process a form with multiple records in the same form?如何在同一个表单中构建和处理具有多个记录的表单?
【发布时间】:2014-05-06 11:30:30
【问题描述】:

我正在创建一个“工作时间”数据库,用户可以在其中记录他们每天的工作时间。目前,表单只允许他们一次添加一条记录(天)。

一些用户希望在月底前完成此操作,并一次注册该月的所有日期。如果表单在一页上每天都有一个字段,然后一次性提交,那会容易得多。

推荐的处理方法是什么?

我是否应该只添加 31 行字段并将它们命名为 blabla1、blabla2、blabla3 等? 然后在PHP中一一检查,如果该字段不为空,如果不是,请执行INSERT? 还是有更优雅的方法来解决这个问题?

目前数据库有以下字段: 工作时间ID 员工 项目 开始时间 结束时间

【问题讨论】:

    标签: php html forms multiple-records


    【解决方案1】:

    其实很简单。像这样创建一个 HTML:

    <input type="text" name="hours[]" />
    <input type="text" name="hours[]" />
    <input type="text" name="hours[]" />
    

    他们提交的任何东西都会创建一个这样的 PHP 数组:

    $_POST['hours'] = array([0] => 'value 1', [1] => 'value 2');
    

    我想你可以从那里开始,对吧?还是需要更多帮助?

    如果您需要更多 PHP 部分:

    <?php
    
    foreach($_POST['hours'] as $value){
       if ($value){ // it's not empty
          // maybe do a little more check on whether $value is valid
          // then insert $value to DB
       }
    }
    
    ?>
    

    【讨论】:

    • 哇,谢谢!我不知道你可以创建这样的输入数组! :D
    【解决方案2】:

    在表单中,您可以添加一个带有“整月”标签的复选框。如果选中该复选框,则添加与该月中的天数相同的记录。但是在某处添加注释,如果日期已经填写,则不会覆盖相应的记录。或者您可以添加另一个复选框来覆盖该月的现有记录。

    HTH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      • 2021-06-11
      相关资源
      最近更新 更多