Mehrere Kontrollkästchen mit demselben Namen

Laut w3c "können mehrere Kontrollkästchen in einem Formular denselben Kontrollnamen haben. So können Benutzer beispielsweise mehrere Werte für dieselbe Eigenschaft auswählen." In diesem Fall nimmt PHP jedoch nur den letzten Wert an. Zum Beispiel:

<?php
if ($_POST) {
echo "<pre>";
print_R($_POST);
echo "</pre>";
}
?>
<form action="" method = "post">
<input type="checkbox" name="pet" value="dog" />Dog<br />
<input type="checkbox" name="pet" value="Cat" />Cat<br />
<input type="checkbox" name="pet" value="bird" />bird<br />
<input type="checkbox" name="pet" value="iguana" />iguana<br />
<input type="submit" />
</form>

Wenn Sie dieses Formular abschicken, wird nur das Kontrollkästchen aktiviert, das zuletzt angezeigt wird. Der Browser sendet sie alle, aber sie überschreiben sich gegenseitig. Das Setzen desselben Namens auf mehrere Kontrollkästchen kann daher Probleme verursachen. War es schon immer so? Ich scheine mich zu erinnern, dass es möglich war, tatsächlich alle Werte als Array zu senden.

Ich weiß, dass Sie einfach ein [] am Ende des Namens hinzufügen können, um ein Array von Werten zu erstellen:

<?php
if ($_POST) {
echo "<pre>";
print_R($_POST);
echo "</pre>";
}
?>
<form action="" method = "post">
<input type="checkbox" name="pet[]" value="dog" />Dog<br />
<input type="checkbox" name="pet[]" value="Cat" />Cat<br />
<input type="checkbox" name="pet[]" value="bird" />bird<br />
<input type="checkbox" name="pet[]" value="iguana" />iguana<br />
<input type="submit" />
</form>

Aber das w3c spezifiziert das nicht. Ehrlich gesagt erinnere ich mich nicht, ob ich immer das [] am Ende des Namens verwendet habe, aber aus irgendeinem Grund glaube ich, dass ich es irgendwann nicht mehr getan habe. Gab es in der Vergangenheit eine Zeit, in der Sie es ohne das [] zum Laufen bringen konnten?

http://www.w3.org/TR/html401/interact/forms.html#checkbox

Antworten auf die Frage(2)

Ihre Antwort auf die Frage