checkbox à choix multiples

checkbox à choix multiples - PHP - Programmation

Marsh Posté le 15-08-2005 à 14:06:29    

Bonjour,  
Voilà mon problème:
je souhaite réaliser un formulaire dans lequel j'intègre des cases à cocher pour lesquelles il est possible d'en sélectionner plusieures.
Seulement si j'en coche plusieures, il me prend en compte uniquement la dernière cochée.
Pouvez-vous m'aider à rédiger mon code PHP (et HTML si celui-ci est faux)car ça fait plusieurs jour que je me prends la tête? Merci.
 
Code HTML:
<form method="post" action="test2contact.php">
  <p>Civilit&eacute;:
    <input name="civilite" type="checkbox" id="civilite" value="monsieur">
  Monsieur  
  <input name="civilite" type="checkbox" id="civilite" value="madame">
  Madame  
  <input name="civilite" type="checkbox" id="civilite" value="mademoiselle">
  Mademoiselle </p>
  <p>
    <input type="submit" name="Submit" value="Envoyer">
</p>
</form>
 
CODE PHP:
<?php
 
$destinataire= "monadresse@domaine.fr";
$objet = "Formulaire de contact";
$headers = "From: monsite.fr\n\r";
$headers .= "MIME-Version: 1.0\n\r";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n\r";
 
 
$civilite =  
$items = "monsieur";
$items .= "madame";  
$items .= "mademoiselle";
 
for ($i = 0; $i <= $items; $i++) {
 
$civilite = $_POST['civilite'];}
 
$msg = "civilite = $civilite";
 
 
echo nl2br($msg);
 
mail($destinataire, $objet, $headers, $msg);
 
echo("<p><font face=verdana size=2>Votre message a bien été envoyé.<br>Merci d'avoir rempli ce formulaire.</font>" ); echo("<p> </p><p> </p><p align=\"center\" ><a href=\"test2contact.htm\"><strong>Retour</strong></a></p>" );
 
?>
 

Reply

Marsh Posté le 15-08-2005 à 14:06:29   

Reply

Marsh Posté le 15-08-2005 à 14:22:40    

les checkbox sont inapropriées dans ce cas présent. un individu ne peut pas declarer sa civilité comme "homme" et "femme" à la fois.  :sweat: il faut utiliser les boutons radio. (input type="radio" )
 
et c'est normal que php ne conserve que la dernière valeur cochée vu que tu leur affecte la même "name" (input type="checkbox" name ="civilité" )... la dernière valeur cochée vient ecraser la précente.  [:airforceone]


---------------
intralase surgery [:cerveau love]
Reply

Marsh Posté le 15-08-2005 à 14:29:12    

pmusa a écrit :

les checkbox sont inapropriées dans ce cas présent. un individu ne peut pas declarer sa civilité comme "homme" et "femme" à la fois.  :sweat: il faut utiliser les boutons radio. (input type="radio" )
 
Tout a fait logique
 
et c'est normal que php ne conserve que la dernière valeur cochée vu que tu leur affecte la même "name" (input type="checkbox" name ="civilité" )... la dernière valeur cochée vient ecraser la précente.  [:airforceone]
 
Il me semble qu'un tableau se crée lorsque plusieurs éléments ont le même nom non ? (enfin c'est un lointain souvenir, je dis peut être une annerie). A moins que cela ne concerne seulement les liste à choix multiple ?
 


Message édité par Profil supprimé le 15-08-2005 à 14:29:21
Reply

Marsh Posté le 15-08-2005 à 14:29:29    

je sais mais en fait ici j'ai pris un exemple car je souhaite en faire un plus important par la suite. Donc à travers cet exemple, je souhaite comprendre comment ça marche. Pouvez-vous me dire comment faire svp? merci

Reply

Marsh Posté le 15-08-2005 à 15:17:57    

Citation :


Il me semble qu'un tableau se crée lorsque plusieurs éléments ont le même nom non ? (enfin c'est un lointain souvenir, je dis peut être une annerie). A moins que cela ne concerne seulement les liste à choix multiple ?  


 
non. dans ce cas il faudrai procéder avec input type="checkbox" name="civilité[]".
mais encore une fois c'est inapproprié. il faut utiliser les boutons radio.


---------------
intralase surgery [:cerveau love]
Reply

Marsh Posté le 15-08-2005 à 15:30:07    

Je tiens à préciser que je ne souhaite pas utiliser des boutons radios mais bien des checkbox car je veux recevoir monsieur ET madame si la personne coche les 2. Autrement je crois bien qu'il faut utiliser des name=""civilite[]". Mais j'ai besoins qu'on m'aide dans mon code PHP car sinon dans mon mail je reçois civilite= array et non pas civilite= monsieur, madame ou quelque chose comme ça. Vous comprenez?

Reply

Marsh Posté le 15-08-2005 à 15:36:49    

Citation :


$civilite =  
$items = "monsieur";
$items .= "madame";  
$items .= "mademoiselle";
 
for ($i = 0; $i <= $items; $i++) {
 
$civilite = $_POST['civilite'];}
 
$msg = "civilite = $civilite";  


 
 :pt1cable:  :pt1cable:  :pt1cable:  
euhh... apprend d'abord le php après on t'aidera. là ça va t'avancer à rien si on te lance le code tout prêt.  :pfff:


---------------
intralase surgery [:cerveau love]
Reply

Marsh Posté le 15-08-2005 à 15:42:25    

Si au contraire, j'ai lu plein de trucs et essayé plein de choses. Mais j'ai jamais trouvé par rapport à mon cas. c'est pour ça que maintenant je demande de l'aide!!!

Reply

Marsh Posté le 15-08-2005 à 18:58:07    

pmusa a écrit :

les checkbox sont inapropriées dans ce cas présent. un individu ne peut pas declarer sa civilité comme "homme" et "femme" à la fois.  :sweat: il faut utiliser les boutons radio. (input type="radio" )


 
S'il parlait du sexe, je veux bien, mais les civilités, y a pas de raison de ne pas pouvoir utiliser les deux en même temps :) (exemple concret : génération automatique d'un mail, si tu destines ton mail à un couple, la politesse voudrait quand même que tu commences par "Monsieur et Madame untel" plutôt que juste "Monsieur untel", macho mis à part :D).
 
Pour en revenir à la question de base, tu définis tes input comme

Code :
  1. <input type="checkbox" name="civilite[]" value="xyz" />


 
Ca va te renvoyer un tableau $_POST['civilite'] que tu pourras parcourir pour obtenir les différents résultats :)

Reply

Marsh Posté le 15-08-2005 à 19:37:14    

maaiiiiiiiis eeeeeeeeeeuuuuuuhhhhh j'lai dja dis avant tooiii.  :sweat:


---------------
intralase surgery [:cerveau love]
Reply

Marsh Posté le 15-08-2005 à 19:37:14   

Reply

Marsh Posté le 15-08-2005 à 21:23:11    

Je voulais pas que ma réponse se limite à une correction sur le sens possible de "civilité" :D

Reply

Marsh Posté le 15-08-2005 à 23:12:27    

D'accord Naceroth, mais j'ai fait ça (dans mon html) et quand je coche je reçois dans mon mail civilite=Array.
Que dois-je donc faire dans mon php pour recevoir mes cases cochées????

Reply

Marsh Posté le 15-08-2005 à 23:42:38    

Juste par curiosité, tu appris un peu le php avant de te lancer dans ça ? Ou pour être encore plus précis, tu sais ce qu'est un tableau en php et comment on le parcourt ? Si oui, c'est exactement pareil ici.
 
Sinon, file me lire au moins la doc sur les tableaux (ici) et celle sur la structure foreach (), histoire d'avoir quelques bases :)

Reply

Marsh Posté le 16-08-2005 à 00:11:26    

aie aie aie!!!! Il y en a pour des mois à lire tout ça!!!!
ça a l'air hyper compliqué pour un débutant.
Non sérieux j'y connais rien et c'est vrai que j'ai pas trop le temps de tout potasser surtout que ma demande est assez urgente (je suis cençé terminer cette semaine et je bloque plus que sur ça!). Tu peux pas m'aider dans la rédaction de mon code svp?

Reply

Marsh Posté le 16-08-2005 à 00:17:57    

Ben c'est con, mais on va comme meme pas faire le taf à ta place...
 
On sait que c'est dur...mais c'est comme cela que l'on apprend...
 
Aller courage, linfo n'est que logique...
C'est vraiment pas sorcier du tout du tout...
 
Et puis te donner ainsi la soluce...te servirais à quoi?
A finir ton projet...bon argument..mais faire un truc sans en comprendre la mondre chose...pas top...

Reply

Marsh Posté le 16-08-2005 à 00:20:48    

allez soyez sympa!!! je vous promet d'apprendre après, mais là j'en ai vraiment besoin rapidement!!!

Reply

Marsh Posté le 16-08-2005 à 00:22:50    

blackmimi a écrit :

aie aie aie!!!! Il y en a pour des mois à lire tout ça!!!!


 [:f@bek]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-08-2005 à 00:25:15    

Bon on fait quoi, il a lair sincére...or not?

Reply

Marsh Posté le 16-08-2005 à 01:55:19    

j'ai l'impression que c'est ça qui ne va pas: $civilite = $_POST['civilite'];} et qui me génère un civilité=array??
Qu'en pensez-vous??

Reply

Marsh Posté le 16-08-2005 à 03:00:42    

blackmimi a écrit :

j'ai l'impression que c'est ça qui ne va pas: $civilite = $_POST['civilite'];} et qui me génère un civilité=array??
Qu'en pensez-vous??


evidemment que c'est un tableau ! si tu comprends meme pas civilite[] vas pas plus loin, lis un book ou apprends php DU DEBUT sur le net

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed