Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3000 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Vérifier si un checkbox est coché ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Vérifier si un checkbox est coché ?

n°1595977
Groody
Utilisez MES smileys §
Posté le 05-08-2007 à 18:10:01  profilanswer
 

Salut,
 
J'ai fait un formulaire dans une page HTML. Celui ci renvoi le contenu vers un script PHP.
Ce script PHP vérifie si les champs sont rempli, puis les poste dans un mail.
 
Mon prb, jusque là ce sont des champs de texte, et il faut que je vérifie si un checkbox a été coché, mais je ne vois pas comment faire.
J'ai désactivé la vérification de ce champ pour voir ce qui est envoyé dans le mail (un "checked" par exemple) pour ensuite le mettre dans le code de la vérification, mais je ne reçois rien, c'est vide.
 
J'ai utilisé ce code :
 
http://www.siteduzero.com/tuto-3-1 [...] -site.html
 
Exemple de vérification de champ rempli :
 

Code :
  1. // On verifie si il y a un message
  2. elseif (trim($message)=="" )
  3. {
  4.         echo "Y'en a marre des messages vide !";
  5. }


 
 
Même si je coche la case, ça me dit bloque.
 
Quelqu'un a une idée ?  [:groody]  
 
 :jap:


---------------
Vidéo Concorde Air France | www.kiva.org
mood
Publicité
Posté le 05-08-2007 à 18:10:01  profilanswer
 

n°1595978
KangOl
Profil : pointeur
Posté le 05-08-2007 à 18:17:25  profilanswer
 

la valeur d'une checkbox n'est envoyée au serveur que si la checkbox est cochée. donc faut juste que tu vérifie que tu as une valeur pour $_POST['checkbox']

n°1595980
Groody
Utilisez MES smileys §
Posté le 05-08-2007 à 18:28:08  profilanswer
 

Je ne comprends pas ce qu'il faut donc faire.
Suite à ton msg, j'ai quand même eu l'idée d'ajouter un ! à :
 
elseif (!trim($message)=="" )
 
Là, effet inverse, que ce soit coché ou non, le message est envoyé.


---------------
Vidéo Concorde Air France | www.kiva.org
n°1595985
CyberDenix
Posté le 05-08-2007 à 19:32:00  profilanswer
 

Le PHP vérifie qu'une checkbox est cochée seulement après envoi du formulaire.
Dans ce cas tu testes l'existence de l'identifiant de ta checkbox (id = '...') dans les variables passées au travers du formulaire ($_POST['...']).
 
Cela donne :
 

Code :
  1. if (isset($_POST['mon_identifiant_de_checkbox'])) {
  2.   echo 'La checkbox est cochée';
  3. }
  4. else {
  5.   echo 'La checkbox n\'est pas cochée';
  6. }


 
Si tu souhaites intercepter le cochage au moment où il se fait, il te faut passer par le langage Javascript.


Message édité par CyberDenix le 05-08-2007 à 19:35:13

---------------
Directeur Technique (CTO)
n°1595987
Groody
Utilisez MES smileys §
Posté le 05-08-2007 à 19:35:21  profilanswer
 

Ok, merci.
Donc dans mon cas, il vaut mieux utilise javascript.
 
Aurais-tu une piste pour un bon script ? (pour afficher un popup)


---------------
Vidéo Concorde Air France | www.kiva.org
n°1595992
CyberDenix
Posté le 05-08-2007 à 20:33:46  profilanswer
 

Poste un autre sujet dans la section Javascript !
Mais en gros, cela donnerait :
 

Code :
  1. <head>
  2.   <script ...>
  3.     function ma_fonction() {
  4.       if (getElementById('mon_id').value == ... ) {
  5.          ...
  6.       }
  7.     }
  8.   </script>
  9. </head>
  10. <body>
  11.   <input id = 'mon_id' type = '...' onclick = 'ma_fonction();'>
  12. </body>


 
Donc au clic sur la checkbox un évènement se déclenche, celui-ci appelle ma_fonction() dans laquelle tu peux regarder, par exemple, la valeur de ta ckeckbox ou faire un tas d'autres choses.


Message édité par CyberDenix le 05-08-2007 à 20:34:50

---------------
Directeur Technique (CTO)
n°1595994
TheRom_S
Posté le 05-08-2007 à 21:06:19  profilanswer
 

Non mais c'est juste que l'action de ton formulaire est un fichier php ou autre (cgi ?) qui envoie un mail. Ben c'est dans ce fichier là qu'il faut que tu gères le checkbox pas dans le truc qui gère tes mails reçus. Si t'as pas accès, effectivement, javascript pourra résoudre le pb.


---------------
The Rom's, à votre service
n°1596002
Groody
Utilisez MES smileys §
Posté le 05-08-2007 à 22:22:45  profilanswer
 

TheRom_s, j'arrive pas comprendre ( "pas dans le truc qui gère tes mails reçus" c'est pas vraiment clair.. :o )
J'ai décrit ce que j'utilise dès le début, peux-tu regarder et me dire si ça correspond à ce que tu penses ?
 
Pour que ce soit parfait (ressembler aux autres champs), il faudrait qu'une fois validé, le script PHP affiche "vous n'avez pas coché la case".
 
 
CyberDenix, ça me dépasse là, je ne comprends rien de ce que fait ce code.
Est-ce qu'il permet d'afficher un msg quand on valide par le bouton d'envoi du formulaire ?
 
 
En fonction de la réponse de TheRom_s, je lancerai ou non un topic pour du javascript.
 
:jap:


---------------
Vidéo Concorde Air France | www.kiva.org
n°1596010
TheRom_S
Posté le 05-08-2007 à 22:57:57  profilanswer
 

oui j'avais mal lu, le "truc" c'est le script php dont tu parles qui envoie le mail, donc comme t'as dit Kangol dans la première réponse, pas besoin de javascript, il faut tester la valeur de $_POST["le_nom_de_ta_checkbox"] dans le script PHP

Code :
  1. if (isset($_POST["le_nom_de_ta_checkbox"]) && $_POST["le_nom_de_ta_checkbox"] == "la_valeur_que_tu_veux_avoir" ) { // le second test par sécurité
  2.     // le truc à faire si c'est coché ...
  3. }
  4. else {
  5.     // sinon ...
  6. }

dans ton html, vérifie que tu as <input name="le_nom_de_ta_checkbox" type="checkbox" value="la_valeur_que_tu_veux_avoir" />
en option, tu peux ajouter l'attribut checked="checked" si tu veux que ce soit activé par défaut


---------------
The Rom's, à votre service
n°1596011
Groody
Utilisez MES smileys §
Posté le 05-08-2007 à 23:04:33  profilanswer
 

Merci, je regarde ça demain.
:jap:


---------------
Vidéo Concorde Air France | www.kiva.org
mood
Publicité
Posté le 05-08-2007 à 23:04:33  profilanswer
 

n°1596071
Groody
Utilisez MES smileys §
Posté le 06-08-2007 à 09:52:44  profilanswer
 

Zut, j'ai une erreur, et j'arrive pas à voir comment la régler.
 
Parse error: syntax error, unexpected T_ELSE in /users/monsite.com/test/mail.php on line 101
 
 
Partout dans le script les vérifications se font par elseif
pour ton exemple, else tout court. Est-ce ça ?
J'ai tenté quelques modifs, sans succès, l'erreur se déplace de ligne en ligne.


---------------
Vidéo Concorde Air France | www.kiva.org
n°1596141
CyberDenix
Posté le 06-08-2007 à 13:22:18  profilanswer
 

Dans un bloc if/elseif/else, le premier test doit être un if et le dernier test doit être un else :
 

Code :
  1. if (...) {
  2.    ...
  3. }
  4. elseif (...) {
  5.   ...
  6. }
  7. elseif (...) {
  8.   ...
  9. }
  10. else {
  11.   ...
  12. }


 
Vérifie également que tu ouvres et fermes bien les parenthèses/accolades et que tu mets un point-virgule à la fin de chaque ligne.


Message édité par CyberDenix le 06-08-2007 à 13:26:25

---------------
Directeur Technique (CTO)
n°1596152
Groody
Utilisez MES smileys §
Posté le 06-08-2007 à 13:33:48  profilanswer
 

Merci.
J'ai trouvé, c'était ça qui posait prb :
 
 { // le second test par sécurité
   // le truc à faire si c'est coché ...}
 
 
 
J'ai l'effet inverse de ce que je cherche, le mail est envoyé si la case n'est pas cochée, et bloque si c'est coché.
Je n'arrive pas à décoder le code suffisemment pour m'en sortir [:groody]


---------------
Vidéo Concorde Air France | www.kiva.org
n°1596309
TheRom_S
Posté le 06-08-2007 à 17:46:55  profilanswer
 

ben c'est ton code, on peut pas te dire
 
si tu veux faire des tas de tests pour faire apparaître les erreurs genre
 
if (condition d'erreur 1) { erreur 1 pas de mail }
else if (condition d'erreur 2) { erreur 2 pas de mail }
...
else if (condition d'erreur N) { erreur N pas de mail }
else { ok on envoie le mail }
 
alors la condition à tester pour la checkbox est
 
(!isset($_POST["le_nom_de_ta_checkbox"]) || (isset($_POST["le_nom_de_ta_checkbox"]) && ($_POST["le_nom_de_ta_checkbox"] != "la_valeur_que_tu_veux_avoir" )))
 
dans ce cas, il y a une erreur


---------------
The Rom's, à votre service
n°1596542
Groody
Utilisez MES smileys §
Posté le 07-08-2007 à 10:47:23  profilanswer
 

J'ai compris pour le If, else If, etc. puis else.
 
Mais je n'arrive tjs pas à "lire" / comprendre le code.
Malgré tout, je viens d'essayer ton morceau de code, et ça fonctionne parfaitement !
 
Encore merci à tous, le site est enfin terminé ;)
a+
:jap:


---------------
Vidéo Concorde Air France | www.kiva.org

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Vérifier si un checkbox est coché ?

 

Sujets relatifs
afficher image avec un checkbox - besoin d'exemple[Resolu] C# TreeNode CheckBox
{RESOLU}[BATCH]Renomer fichier .jpg + MultiUploadVérifier l'activation du javascript depuis une page web
[Résolu] Formulaire : Pb réaffichage valeur checkboxCheckbox de couleurs
[sql] vérifier le format d'une colonneJTable et CheckBox ca fait 2 !
Vérifier la présence d'un programme localComment verifier si un checkbox est coché ?
Plus de sujets relatifs à : Vérifier si un checkbox est coché ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR