2012-04-15 25 views
1

Ok, ich habe mit einem Formular index.html wie folgt:PHP Handhabung mehrere Kontrollkästchen

<form action="process.php" method="post"> 
    <table> 
    <tr> 
     <td><input name="Field[]" type="checkbox" value="Accounting" />Accounting</td> 
     <td><input name="Field[]" type="checkbox" value="Finance" />Finance</td> 
     <td><input name="Field[]" type="checkbox" value="Marketing" />Marketing</td> 
    </tr> 
    </table> 
</form> 

Und ich habe process.php wie folgt:

<table> 
    <tr> 
    <th>Field(s):</th> 
    <td> 
     <?php 
     if(isset($_POST['Field'])) 
     { 
      for($i = 0; $i < count($_POST['Field']); $i++) 
      { echo $_POST['Field'][$i] . ' '; } 
     } 
     ?> 
    </td> 
    </tr> 
</table> 

Doch aus irgendeinem Grund habe ich nur Holen Sie den ersten Buchstaben des letzten Kontrollkästchens, das ausgedruckt wurde. Hilfe bitte!

+0

Das Skript funktioniert wie auf meinem Server ist, für ein paar schnelle Triage, versuchen 'var_dump ($ _ POST);' und stellen Sie sicher, dass die Indizes von '$ _POST [ 'Field']' sind, was Sie denken, sie sind . Auch welche Serverplattform/Version verwenden Sie? – Foran

+0

Ich verwende XAMPP unter Windows 7 Professional, also Apache/Windows 7 Pro. Würde ich auch var_dump ($ _ POST) echo? Ich lerne immer noch PHP, also weiß ich es nicht. –

+0

Angesichts der Tatsache, dass die Antwort von Muhammed unten funktioniert, würde ich sagen, dass Ihre Serverumgebung verschiedene Indizes erzeugt hat. 'var_dump ($ _ POST)' ist eine gute Debugging-Tool/Anweisung, wenn Dinge nicht wie erwartet funktionieren und es kein 'echo' benötigt – Foran

Antwort

5
Try this one in process.php to get the values from $_POST['Field'] 

    <table> 
    <tr> 
    <th>Field(s):</th> 
    <td> 
     <?php 
     if(isset($_POST['Field'])) 
     { 
      foreach ($_POST['Field'] as $value) { 
      echo $value; 
      } 
     } 
     ?> 
    </td> 
    </tr> 
    </table> 
+1

Es funktioniert, wie Sie jetzt, jetzt jedoch jetzt meine Javascript-Fehlerüberprüfung auf Index zur Verfügung gestellt. html validiert die Formulardaten nicht mehr vor der Übermittlung. Ich habe die Seite index.html nicht verändert, daher bin ich an dieser Stelle völlig verwirrt. –

+2

Es hat keinen Einfluss auf den Javascript-Code, da process.php auf der Server-Seite läuft. Bitte überprüfen Sie den JavaScript-Code in index.html oder geben Sie hier Ihren index.html-Code ein. So kann jemand es überprüfen und Ihnen eine klare Erklärung geben. –

+1

Nevermind, ich habe den Fehler mit Firebug aufgespürt. Wenn ich die Checkboxen umbenennen musste, indem ich das [] an das Ende ihres Namens angehängt habe, hat es den JavaScript-Fehler beseitigt, der nach diesem Feld sucht. Anstatt also den Feldnamen zu validieren, musste ich zum Elementarray wechseln, dh: anstelle von 'for (var i = 0; i

Verwandte Themen