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

rashel -  
rashelooo Messages postés 10 Statut Membre -
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!

A voir également:

16 réponses

Breub62 Messages postés 3452 Statut Membre 369
 
Tu confond checkbox et boutons radio. Pour des checkbox, les noms doivent être différents(couleur1, couleur2,...)
1
Breub62 Messages postés 3452 Statut Membre 369
 
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 3452 Statut Membre 369
 
if(isset($_POST['bleu_fonce']))
{
$couleur = "bleu foncé";
}
1
Breub62 Messages postés 3452 Statut Membre 369
 
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 3452 Statut Membre 369
 
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 3452 Statut Membre 369
 
Est-ce que ton $message est bien initialisé quelque part à "" ??
1
Breub62 Messages postés 3452 Statut Membre 369
 
$HTTP_POST_VARS['message']; c'est l'équivalent de $_POST['message'];

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

Merci beaucoup! :)
0
rashel
 
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
rashel
 
Je test ça, merci! :)
0
rashel
 
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
rashel
 
Ç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
rashel
 
... 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 10 Statut Membre
 
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 267 Statut Membre 70
 
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 10 Statut Membre
 
C'est noté, merci de cette précision!
0