Checkbox et php

Résolu/Fermé
cinqheures - 18 oct. 2011 à 13:13
 fsyteaj44 - 19 oct. 2011 à 07:01
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

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
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 dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
18 oct. 2011 à 13:59
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
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
18 oct. 2011 à 21:20
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
$message.="(visite)"; avec un point, car dans mon script il existe plusieurs $message.

Merci
0