2010-09-05 39 views
5

嗨,我有一个表格,用户可以选择开始日期和结束日期。例如,如果天数不是3,则会生成3行日期。每个日期,日期和时间段(上午/下午)将存储在隐藏字段中。因此3天将生成名称为date_1,day_1,period_1,date_2,day_2,period_2,date_3,day_3,period_3的隐藏字段。如何处理使用PHP的表单输入的动态数量?

问题是如何处理这种动态数量的表单输入?我需要将值传递给控制器​​,然后进行建模以存储到数据库中。这是主要的问题,因为表单输入是数字是动态的,我们需要将它传递给控制器​​功能。

有人可以告诉我处理这个问题的正确方法吗?教程的链接会有所帮助谢谢:)

这是一种利用生成日期列表,在下面的图片

function test(){ 
      var count = 0; 
      var date1 = $('#alternatestartdate').val(); 
      var date2 = $('#alternateenddate').val(); 
      var startDate = new Date(date1); 
      var endDate = new Date(date2); 
      var Weekday = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"); 
      while (startDate<=endDate) 
      { 
      var weekDay = startDate.getDay(); 
      if (weekDay < 6 && weekDay > 0) { 
      var month = startDate.getMonth()+1; 
      if(month <= 9) { month = "0"+month; } 
      var day = startDate.getDate(); 
      var datearr = new Array(); 
      if(day <= 9) { day = "0"+day; } 
      count++; 
      var datelist = day+"-"+month+"-"+startDate.getFullYear(); 
      $('#pa').append(day+"-"+month+"-"+startDate.getFullYear() + " ("+Weekday[weekDay]+") <input type='hidden' id='' name='date_"+count+"' value='"+datelist+"' /><input type='hidden' id='' name='day_"+count+"' value='"+Weekday[weekDay]+"' /><input type='radio' name='period_"+count+"' value='1' checked/>Full<input type='radio' name='period_"+count+"' value='2'/>Half (AM)<input type='radio' name='period_"+count+"' value='3'/>Half (PM)<br />"); 

      } 
      startDate.setDate(startDate.getDate()+1) 
      } 
      $('#pa').append("<input type='hidden' id='' name='countval' value='"+count+"' />"); 
     } 

alt text

代码如果插入正确,数据该数据库将是这样的:

alt text

回答

5

如果你把空括号内结束所有相关的标签,像这样的name属性:

<input type='hidden' name='blah[]' value='foo' /> 
<input type='hidden' name='blah[]' value='bar' /> 

那么他们将通过$_POST数组作为数组来发送。

所以您可以访问他们像这样:

<?php 

echo($_POST['blah'][0]); // foo 
echo($_POST['blah'][1]); // bar 

?> 
+0

我以前试过,但它不会与输入电台工作。如果您选中了一个,则第二行和第三行的收音机输入信息将会出现问题并进行检查。 – cyberfly 2010-09-05 16:44:01

相关问题