如何以相同的形式构建和处理包含多个记录的表单?

时间:2014-05-06 11:30:30

标签: php html forms multiple-records

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

有些用户希望在月底之前执行此操作,并立即注册该月的所有日期。如果表单在一个页面上每天都有一个字段,然后立即提交所有内容,那就容易多了。

推荐的处理方式是什么?

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

目前,DB有以下字段:     WorkHourID     雇员     项目     开始时间     结束时间

2 个答案:

答案 0 :(得分: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
   }
}

?>

答案 1 :(得分:0)

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

HTH