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
A voir également:

6 réponses

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
cinqheures
 
Je vais regarder cela et faire l'essai. Merci de la promptitude de ta réponse
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
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
cinqheures
 
Merci à toi également pour cette aide !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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
fsyteaj44
 
$message.="(visite)"; avec un point, car dans mon script il existe plusieurs $message.

Merci
0