2010-09-05 12 views
5

Hallo ich habe ein Formular, wo Benutzer Startdatum und Enddatum eines Urlaubs auswählen können. Wenn zum Beispiel die Anzahl der Tage 3 beträgt, wird eine 3-stellige Datumsreihe generiert. Jedes Datum, jeder Tag und jeder Zeitraum (am/pm) wird im versteckten Feld gespeichert. So generieren 3 Tage ein verstecktes Feld mit dem Namen date_1, day_1, period_1, date_2, day_2, period_2, date_3, day_3, period_3.Wie man mit dynamischer Anzahl der Formulareingabe mit PHP umgehen?

Die Frage ist, wie man mit dieser dynamischen Zahl der Formulareingabe umgehen kann? Ich muss den Wert an den Controller übergeben und dann modellieren, um in der Datenbank zu speichern. Dies ist das Hauptproblem, da die Formulareingabe numerisch dynamisch ist und wir sie an die Controller-Funktion übergeben müssen.

Kann mir jemand den richtigen Umgang mit diesem Problem zeigen? Ein Link von Tutorial wird hilfreich sein Dank :)

Dies ist der Code, der Verwendung zu erzeugen, um die Liste der Zeitpunkt, wie im Bild unten

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

Wenn Einsatz richtig, die Daten die in der Datenbank wird wie folgt aussehen:

alt text

Antwort

5

Wenn Sie leere Klammern am Ende setzen der Name Attribut aller verwandten Tags, etwa so:

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

dann werden sie als Array durch die $_POST Array gesendet werden.

So greifen Sie sie wie folgt:

<?php 

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

?> 
+0

ich das vorher versucht, aber es wird nicht mit Eingangsfunk zu arbeiten. Wenn Sie einen Haken gesetzt haben, wird der Radio-Eingang in der 2. und 3. Reihe mit checked. – cyberfly

Verwandte Themen