Récupération des données via un formulaire

Eléphant du PHP | 121 Messages

14 févr. 2010, 13:08

Bonjour à tous,

Je voudrai créer pour mon site un formulaire à choix multiples .
<form id="form1" name="form1" method="post" action="inscriptionquest.php">
  <p>
    <label>
      <input type="checkbox" name="CheckboxGroup1" value="case à cocher1" id="CheckboxGroup1_0" />
      Case à cocher</label>
    <br />
    <label>
      <input type="checkbox" name="CheckboxGroup1" value="case à cocher2" id="CheckboxGroup1_1" />
      Case à cocher</label>
    <br />
      <input type="checkbox" name="CheckboxGroup1" value="case à cocher3" id="CheckboxGroup1_2" />
      Case à cocher</label>
    <br />
      <input type="checkbox" name="CheckboxGroup1" value="case à cocher4" id="CheckboxGroup1_3" />
      Case à cocher</label>
    <br />
      <input type="checkbox" name="CheckboxGroup1" value="case à cocher5" id="CheckboxGroup1_4" />
      Case à cocher</label>
    <br />
  </p>
  <input type="submit" name="bouton" value="Envoyer le formulaire" align="center">
</form>
mon code de récupération des données cochées
<?php
if (isset($_POST['CheckboxGroup1'])) { // on s'assure qu'au moins une des cases à été cochée
  foreach ($_POST['CheckboxGroup1'] as $case) {
    // traitement
    echo '  "'.$case.'" a été sélectionnée';
  }
}
?>
Mon problème c'est que je voudrais récupérer toutes les case qui ont été cochées. mais j'ai un message d'erreur:
Warning: Invalid argument supplied for foreach() in E:\wamp\www\Communparapente\ecole\inscriptionquest.php on line 3
Je pense avoir un problème avec ma boucle, mais je ne trouve pas .

Merci pour votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 févr. 2010, 15:28

Pour que php regroupe les données envoyées par ton formulaire dans un tableau, il faut que le nom de tes champs comportent des crochets :
 <label>
      <input type="checkbox" name="CheckboxGroup1[]" value="case à cocher1" id="CheckboxGroup1_0" />
      Case à cocher</label>
    <br />
    <label>
      <input type="checkbox" name="CheckboxGroup1[]" value="case à cocher2" id="CheckboxGroup1_1" />
      Case à cocher</label>
...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 121 Messages

14 févr. 2010, 21:38

Hello,

Merci pour tes infos. Ça fonctionne tip top.