Récupérer ts les résultats de cases à cocher

Fermé
rashel - 23 juin 2010 à 14:38
rashelooo Messages postés 7 Date d'inscription mardi 4 mai 2010 Statut Membre Dernière intervention 23 juin 2010 - 23 juin 2010 à 16:56
Bonjour,

j'ai un formulaire sur une page web et je dois récupérer les données via une requête php pour envoyer les résultats par email. Pas de soucis pour les champs textes ou boutons radions.
Par contre, pour les cases à cocher, je ne reçoit que le résultat de la 1ere case cochée.
Comment tout récupérer svp?


Code html:
<tr>
  <td>Quelle couleur?</td>
  <td><input name="couleur" type="checkbox" id="couleur" value="noir" />
    noir</td>
</tr>
<tr>
  <td>&nbsp;</td>
  <td><input name="couleur" type="checkbox" id="couleur" value="blanc" /> 
    blanc
</td>
</tr>
<tr>
  <td>&nbsp;</td>
  <td><input name="couleur" type="checkbox" id="couleur" value="vert" />
    vert</td>
</tr>



Code php:
$message .= "Couleur: $couleur";


Qu'est ce qui cloche dans mon code pour que je ne récupère qu'un seul résultat, même lorsqu'il y en a plusieurs de cochés?

Merci de votre aide et bonne journée!


16 réponses

Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
23 juin 2010 à 14:41
Tu confond checkbox et boutons radio. Pour des checkbox, les noms doivent être différents(couleur1, couleur2,...)
1
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
23 juin 2010 à 14:56
De rien ;-)

J'ai déjà fait ce genre d'erreur, le plus chiant étant quand tu génère automatiquement un formulaire sans savoir combien de checkbox tu as à gérer par la suite. Mais c'est une autre histoire.

Bonne continuation
1
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
23 juin 2010 à 15:07
if(isset($_POST['bleu_fonce']))
{
$couleur = "bleu foncé";
}
1
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
23 juin 2010 à 15:09
Ou plutôt :

if($_POST['Couleur1'] == "bleu_fonce")
{
$_POST['Couleur1'] = "bleu foncé";
}


;-)
1

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

Posez votre question
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
Modifié par Breub62 le 23/06/2010 à 15:29
Moi j'aurais mis :


  
if($_POST['la_specialisation_d_un_collaborateur_comptable'] == "la spécialisation d un collaborateur comptable")  
{  
$_POST['la_specialisation_d_un_collaborateur_comptable'] = "la spécialisation d un collaborateur comptable";  
}  
 $message .= "$_POST['la_specialisation_d_un_collaborateur_comptable'], $solution2, $solution3, $solution4<br><br>"; 


1
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
23 juin 2010 à 16:05
Est-ce que ton $message est bien initialisé quelque part à "" ??
1
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
23 juin 2010 à 16:23
$HTTP_POST_VARS['message']; c'est l'équivalent de $_POST['message'];

donc je vois plus trop... Je m'occupe de toi demain... ;-)
1
Effectivement, si je renomme chaque checkbox, ça fonctionne!

Merci beaucoup! :)
0
Un problème cependant: s'il y a "bleu clair" ou "bleu foncé", comme je dois faire passer le nom de la checkbox, sur mon mail il y aura écrit "bleu_fonce" et non "bleu foncé".

J'aurais voulu enlever les "_" . Si je nomme ma check box avec des espaces, ça bug. Une solution peut-être?
0
Je test ça, merci! :)
0
J'ai un soucis de syntaxe: je sais pas comment le mettre dedans, et ça bug. Pourtant, je suis à l'intérieur de balises PHP, donc ca devrait passer. Peut-etre la 1ere double cote que ne lui plait pas?

	$message .= 	
	if($_POST['la_specialisation_d_un_collaborateur_comptable'] == "la spécialisation d un collaborateur comptable") 
{ 
$_POST['la_specialisation_d_un_collaborateur_comptable'] = "la spécialisation d un collaborateur comptable"; 
} 
	"$la_specialisation_d_un_collaborateur_comptable, $solution2, $solution3, $solution4<br><br>";


(et ensuite mettre la même condition pour les autres cas. Je te rassure, c'est la partie la plus courte de mon formulaires, les autres questions ont entre 20 et 30 réponses possibles :))))))
0
Ça marche pas...

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /xxx/xxx/www/enquiry-enquete.php on line 21

DreamWeaver me dit aussi qu'il y a une erreur..
if($_POST['la_specialisation_d_un_collaborateur_comptable'] == "la spécialisation d un collaborateur comptable")  
{  
$_POST['la_specialisation_d_un_collaborateur_comptable'] = "la spécialisation d un collaborateur comptable";  
} 
$message .= "$_POST['la_specialisation_d_un_collaborateur_comptable'], $solution2, $solution3, $solution4<br><br>";
	
0
... je ne sais pas...

Peut-etre parle-tu de ça?
<?php 
$message=$HTTP_POST_VARS['message'];


?

Sans la condition, ça marche.. normalement mes bouts de codes sont sur le modèle suivant:
	$message .= "Nom : <b>$nom</b><br>";
	$message .= "Prenom : <b>$prenom</b><br>";


Désolée, je ne suis pas une roxeuse en php! :p Mon truc normalement c'est l'infographie, mais il faut bien apprendre à être polyvalent .... :p
0
rashelooo Messages postés 7 Date d'inscription mardi 4 mai 2010 Statut Membre Dernière intervention 23 juin 2010
23 juin 2010 à 16:32
Bon... je vais déja me concentrer sur l'affichage de mes x checkbox (très nombreux), et on vera la suite après..

Merci de ton aide en tous les cas :)
0
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
Modifié par Leviathan49 le 23/06/2010 à 16:43
Je vois que tu as déjà eu la réponse à ta question mais je me permet quand même de preciser que le code :
<tr> 
  <td>Quelle couleur?</td> 
  <td><input name="couleur[]" type="checkbox" id="couleur" value="noir" /> 
    noir</td> 
</tr> 
<tr> 
  <td> </td> 
  <td><input name="couleur[]" type="checkbox" id="couleur" value="blanc" />  
    blanc 
</td> 
</tr> 
<tr> 
  <td> </td> 
  <td><input name="couleur[]" type="checkbox" id="couleur" value="vert" /> 
    vert</td> 
</tr>

Avec un [] après le nom
Il fonctionne et permet de récupérer toutes les valeurs de couleur dans un tableau. Attention au cas aucune checkbox n'est coché néanmoins(utilisez un isset).
0
rashelooo Messages postés 7 Date d'inscription mardi 4 mai 2010 Statut Membre Dernière intervention 23 juin 2010
23 juin 2010 à 16:56
C'est noté, merci de cette précision!
0