Plusieurs cases à cocher partageant le même nom

Selon le w3c, "Plusieurs cases à cocher dans un formulaire peuvent partager le même nom de contrôle. Ainsi, par exemple, des cases à cocher permettre aux utilisateurs de sélectionner plusieurs valeurs pour un même bien." Toutefois, si vous le faites, PHP permettra de ne prendre que la dernière valeur. Par exemple:

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

Si vous validez le formulaire, vous allez voir que la case est cochée, qui apparaît en dernier. Le navigateur envoie à tous, mais ils écrasent les autres. Donc, fixer le même nom à plusieurs cases peuvent causer des problèmes. Il a toujours été comme ça? Il me semble me rappeler qu'il était possible d'envoyer toutes les valeurs dans un tableau.

Je sais que vous pouvez simplement ajouter un [] à la fin du nom pour créer un tableau de valeurs:

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

Mais le w3c ne spécifie pas que. Honnêtement, je ne me souviens pas si j'ai toujours utilisé le [] à la fin du nom, mais pour une raison que je pense qu'à un certain point, je n'ai pas. Il était tout le temps dans le passé, alors vous pourriez le faire fonctionner sans les []?

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

source d'informationauteur Buzu