2010-09-05 10 views
5

Witam mam formularz, w którym użytkownik może wybrać datę początkową i końcową urlopu. Na przykład, gdy liczba dni wynosi 3, wygenerowany zostanie 3 wiersz daty. Każda data, dzień i okres (am/pm) będą przechowywane w ukrytym polu. Tak więc 3 dni wygenerują ukryte pole o nazwie date_1, day_1, period_1, date_2, day_2, period_2, date_3, day_3, period_3.Jak radzić sobie z dynamiczną liczbą wprowadzanych formularzy za pomocą PHP?

Pytanie brzmi, jak postępować z tą dynamiczną liczbą danych wejściowych formularza? Muszę przekazać wartość do kontrolera, a następnie modelować do przechowywania w bazie danych. Jest to główny problem, ponieważ liczba wprowadzanych znaków jest dynamiczna i musimy przekazać ją do funkcji kontrolera.

Czy ktoś może pokazać mi prawidłowy sposób radzenia sobie z tym problemem? Link tutorial będzie pomocny dzięki :)

Jest to kod, który ma zastosowanie do generowania listy terminie jak na zdjęciu poniżej

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

Jeśli wkładka prawidłowo, dane in bazy danych będzie wyglądać następująco:

alt text

Odpowiedz

5

Jeśli umieścisz pustych nawiasów na końcu atrybut nazwy wszystkich powiązanych tagów, tak jak:

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

następnie zostaną one wysłane za pośrednictwem tablicy $_POST jako tablicę.

więc dostęp do nich tak:

<?php 

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

?> 
+0

próbowałem tego wcześniej, ale to nie będzie działać z radiem wejściowego. Jeśli zaznaczysz jedną, wejście radiowe w drugim i trzecim rzędzie będzie problem z zaznaczoną. – cyberfly

Powiązane problemy