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!
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
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. –
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