Mais un problème se pose lorsque vous souhaitez intégrer des cases à cocher (checkbox) dans un formulaire :
ces cases représentent plusieurs choix possibles pour une même proposition, il est donc normal qu'elles aient le même nom.
Seulement, vous récupérerez à ce moment-là une et une seule variable, ce qui ne vous permettra pas de récupérer toutes les valeurs sélectionnées.
La solution consiste à récupérer un tableau de valeurs. Ceci tout simplement en ajoutant des crochets au nom de la case à cocher.
exemple de formulaire :
Code : Tout sélectionner
<form name="formulaire1" method="POST" action="script.php">
Pour vos sites vous utilisez :<br>
<input type="checkbox" name="langage[]" value="js"> le Javascript <br>
<input type="checkbox" name="langage[]" value="php"> le PHP <br>
<input type="checkbox" name="langage[]" value="sql"> le SQL <br>
<input type="checkbox" name="langage[]" value="html"> le HTML <br>
<input type="submit" name="submit" value="Envoyer">
</form>
Nous pouvons ensuite boucler sur ce tableau et récupérer ces valeurs dans script.php :
<?php
// vérifions que la variable a été transmise
$tabLangages = (isset($_POST['langage']))?$_POST['langage']:null;
echo "Voici les langages que vous avez choisi :<br>";
// bouclons sur le tableau qui a été transmis et affichons les valeurs sélectionnées
if (!empty($tabLangages)) {
foreach($tabLangages as $cle => $valeur) {
echo $cle.' : '.$valeur.'<br>';
}
}
?>
C'est aussi valable pour les listes déroulantes à choix multiples :
Code : Tout sélectionner
<select name="langage[]" size="3" multiple>la fonction foreach
la fonction empty