2010-09-05 27 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

相關問題