Checkbox et php

Résolu
cinqheures -  
 fsyteaj44 -
Bonjour,

"Petit" problème, du moins pour moi....

J'ai créé un formulaire avec différentes rubriques (texte, email, bouton radio, checkbox). Je reçois sans problème toutes les données rentrées par mail, via PHP, mais en ce qui concerne les checkbox cela coince.

Extrait de la partie HTML du formulaire :

<fieldset>
<div>

<input type="checkbox" name="visite"[] value="antiquaires"/> Visite des antiquaires
<input type="checkbox" name="visite"[] value="musees"/> Visite des musées
</div>

</fieldset>

Extrait de la partie PHP

$message.="(visite) ";
for ($i=0; $i<count($visite); ++$i)
$message.=$visite[$i].",";
$message.="\r\n";

$message ($to,$subject,$message$from)

En "réponse" je reçois toujours la valeur "musée" ou plus exactement la valeur "m".
Où se situe le problème ???
MERCI

6 réponses

  1. le père
     
    Bonjour

    Le problème est dans le formulaire. les [] devraient faire partie du name, et donc être entre les deux "
    Tel que tu l'as écrit, tes deux checkbox s'appellent "visite" et non pas "visite[]"
    Donc count($visite) te rend 1 (car $visite n'est pas un tableau)
    et $visite[0] te rend "m" car une simple chaîne indexée comme un tableau est considérée comme un tableau de caractères, tu en récupères le premier.
    0
  2. cinqheures
     
    Je vais regarder cela et faire l'essai. Merci de la promptitude de ta réponse
    0
  3. jisisv Messages postés 3678 Statut Modérateur 936
     
    Effectue une variation sur:
    johand@osiris: ~/www/data/buttons $ cat form.html
    <html>
      <body>
        <form action="results.php" method="POST" >
          <input type="checkbox" name="visite[]" value="antiquaires"/> Visite des antiquaires
          <input type="checkbox" name="visite[]" value="musees"/> Visite des musées 
          <input type="submit" value="Envoyer" />
        </form>
      </body>
    </html>
    johand@osiris: ~/www/data/buttons $ cat results.php
    <?php
    echo "<html><body>\n";
    print_r($_POST);
    
    $message.="(visite) ";
    for ($i=0; $i < count($_POST["visite"]) ; $i++)
        $message.= $_POST["visite"][$i]. ", " ;
    $message.="\r\n</body></html>"; 
    print $message;

    Johan
    0
  4. cinqheures
     
    Merci à toi également pour cette aide !
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alain_42 Messages postés 5413 Statut Membre 904
     
    juste une petite rectif:

    <?php
    echo "<html><body>\n";
    print_r($_POST);

    $message.="(visite) ";


    <?php
    echo "<html><body>\n";
    print_r($_POST);
    
    $message="(visite) "; //sans le point
    
    0
  7. fsyteaj44
     
    $message.="(visite)"; avec un point, car dans mon script il existe plusieurs $message.

    Merci
    0