Kilka pól wyboru o tej samej nazwie

Według w3c „Kilka pól wyboru w formularzu może mieć tę samą nazwę kontrolną. Tak więc, na przykład, pola wyboru pozwalają użytkownikom wybrać kilka wartości dla tej samej właściwości.” Jeśli jednak to zrobisz, PHP przyjmie tylko ostatnią wartość. Na przykład:

<?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>

Jeśli prześlesz ten formularz, zobaczysz, że tylko zaznaczone pole, które pojawia się jako ostatnie, zostanie ustawione. Przeglądarka wysyła je wszystkie, ale zastępują się nawzajem. Zatem ustawienie tej samej nazwy na kilka pól wyboru może powodować problemy. Czy zawsze tak było? Wydaje mi się, że pamiętam, że możliwe było wysłanie wszystkich wartości jako tablicy.

Wiem, że możesz po prostu dodać [] na końcu nazwy, aby utworzyć tablicę wartości:

<?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>

Ale w3c tego nie określa. Szczerze mówiąc nie pamiętam, czy zawsze użyłem [] na końcu nazwy, ale z jakiegoś powodu myślę, że w pewnym momencie tego nie zrobiłem. Czy był kiedyś w przeszłości, kiedy można go uruchomić bez []?

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

questionAnswers(2)

yourAnswerToTheQuestion