Rendre un champ obligatoire si 1 bouton radio coché

Résolu
Frystie01 Messages postés 14 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 23 septembre 2009 - 29 mai 2009 à 08:58
Frystie01 Messages postés 14 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 23 septembre 2009 - 15 juin 2009 à 11:42
Bonjour tout le monde,
j'ai 2 boutons radio dans un document html et en dessous un champ à remplir que j'aimerais rendre obligatoire seulement si le 2e bouton radio est coché.
Il ne concerne pas le 1er bouton donc la 1ère option mais si on choisit la 2e option il faudrait précisé pourquoi dans le champ en dessous...

J'aimerais rendre ça possible en php avec une ligne "if(!preg_match(..." ou autre.

Quelqu'un aurait t-il la solution? Merci d'avance

_______________________________________________
MYD-C . <cite>myd-c.over-blog.com</cite>

10 réponses

coach759 Messages postés 43 Date d'inscription vendredi 29 mai 2009 Statut Membre Dernière intervention 4 mars 2011
29 mai 2009 à 13:37
Ba oué, c'est tout bête, c'est parce que tu ne mets pas d'instruction dans ton if.

Tu peux ne rien mettre, mais dans ce cas, tu doit mettre {}:

if($_POST["elect1"]=="Electricité plus que 1000W/10m2"){}
elseif (trim($desc)=="")
{

....
}

Voila, bonne journée
Si à la Saint Valentin elle te caresse la main, vivement la Sainte Marguerite...
3
coach759 Messages postés 43 Date d'inscription vendredi 29 mai 2009 Statut Membre Dernière intervention 4 mars 2011
29 mai 2009 à 14:07
Normal, vu que t'a mis

if($_POST["elect1"]=="Electricité plus que 1000W/10m2"){}

Donc lui il ne fait rien, à l'intérieur de {}mets tes instructions....
Si à la Saint Valentin elle te caresse la main, vivement la Sainte Marguerite...
3
coach759 Messages postés 43 Date d'inscription vendredi 29 mai 2009 Statut Membre Dernière intervention 4 mars 2011
29 mai 2009 à 10:43
Bonjour,

Il faut que tu vérifie lorsque l'utilisateur valide le formulaire:
Tu test si le 2ème bouton est coché (avec if($_POST["nom_de_ton_boutton_radio"]=="valeur_option_2")
Si elle est coché, tu vérifie la valeur du champs "pourquoi" et si il est vide, tu renvoie à la page avec un message d'erreur.

Sinon, tu peux faire les tests en javascript et empêcher d'envoyer le formulaire si le champs n'est pas rempli.
Mais comme je ne suis pas un pro en javascript...

Bonne journée

Si à la Saint Valentin elle te caresse la main, vivement la Sainte Marguerite...
0
Frystie01 Messages postés 14 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 23 septembre 2009
29 mai 2009 à 13:03
Merci de ta réponse , par contre je bloque pour vérifier la valeur du champ "pourquoi" (qui s'appelle "desc" en fait),

voici mon code:
if($_POST["elect1"]=="Electricité plus que 1000W/10m2")
elseif (trim($desc)=="")
{
        echo "

ERREUR : VOUS AVEZ COCHE LA CASE PLUS DE 1000W/10m2, VOUS DEVEZ REMPLIR LE CHAMP CORRESPONDANT";?>
       
[javascript:history.go(-1) Retour au formulaire]

<?
}

ça bloque à la partie elseif.... mais je sais pas comment faire d'autre...

_______________________________________________
MYD-C . <cite>myd-c.over-blog.com</cite>
0

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

Posez votre question
coach759 Messages postés 43 Date d'inscription vendredi 29 mai 2009 Statut Membre Dernière intervention 4 mars 2011
29 mai 2009 à 13:13
C'est parce que $desc n'est pas initialisé...
C'est plutot $_POST['desc']...

Et n'oublie pas de "sécuriser"  $_POST['desc'], pour pas que les gens rentre n'importe quoi, avec par exemple htmlentities( $_POST['desc']) ou htmlspecialchars( $_POST['desc'])

Si à la Saint Valentin elle te caresse la main, vivement la Sainte Marguerite...
0
Frystie01 Messages postés 14 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 23 septembre 2009
29 mai 2009 à 13:23
Il l'est via
$desc=$_POST["desc"];

D'après le code d'erreur, le problème est au niveau de
elseif (trim($desc)=="")

_______________________________________________
MYD-C . <cite>myd-c.over-blog.com</cite>
0
Frystie01 Messages postés 14 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 23 septembre 2009
29 mai 2009 à 14:01
Merci, y a du mieux : ça marche pour la 2e option !
Par contre c'est la première option qui ne marche plus...
Si je choisis la 1ère option j'arrive sur une page blanche et mon formulaire ne s'envoie pas, pas de ligne d'erreur, rien...
Faut-il mettre un code pour cette option là?

_______________________________________________
MYD-C . <cite>myd-c.over-blog.com</cite>
0
Frystie01 Messages postés 14 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 23 septembre 2009
29 mai 2009 à 14:28
T'es trop fort !
C'est nickel chrome chocolat !
ça paraît évident maintenant que le code est complet, mais y a des fois...
J'ai encore des progrès à faire... beaucoup même ! lol

Merci encore 1000 fois !

_______________________________________________
MYD-C . <cite>myd-c.over-blog.com</cite>
0
coach759 Messages postés 43 Date d'inscription vendredi 29 mai 2009 Statut Membre Dernière intervention 4 mars 2011
29 mai 2009 à 14:33
Ya pas de problème, si t'a dotre problème n'hésite pas....
Ya pas de question idotes et ça peut servir à d'autres... N'oublie pas de valider le sujet....

A+, bonne journée

Si à la Saint Valentin elle te caresse la main, vivement la Sainte Marguerite...
0
Frystie01 Messages postés 14 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 23 septembre 2009
15 juin 2009 à 11:42
Je viens de m'apercevoir d'un truc qui ne pas pas du tout :
si le 2e bouton radio est coché pas de souci, il faut obligatoirement la description pour que les réponses s'envoie,
par contre si le 1er bouton radio est coché le message s'envoie même si l'une des autres règles n'est pas respecté...
Ce qui donne ce genre de message :

VOTRE EMAIL N'EST PAS VALIDE
[javascript:history.go(-1) Retour au formulaire]

Votre message a bien été envoyé

par exemple dans ce cas l'email n'est pas bon mais comme le code indique que si la première case est cochée le message s'envoie.
Les autres codes qui disent de ne pas l'envoyer sont ignorés.

sachant que du coup il y a deux fois l'instruction d'envoyer le message :

else {

//Envoie le message

mail($destinataire,$objet2,$message,$from);


echo "

Votre message a bien
&eacute;t&eacute; envoy&eacute;";


}

Une fois pour cette partie sur l'électricité,
l'autre pour envoyer le message si tout est bien rempli...

voici la partie du php qui pose problème (je pense) :

if($_POST["elect1"]= ="Electricité plus que 1000W/10m2"){}
else {
//Envoie le message
mail($destinataire,$objet2,$message,$from);

echo "

Votre message a bien &eacute;t&eacute; envoy&eacute; ";

}

if($_POST["elect1"] =="Electricité jusqu'à 1000W/10m2"){}
elseif (trim($desc)=="")
{
        echo "

ERREUR : VEUILLEZ COMPLETER LA PARTIE ELECTRICITE SVP";?>
       
[javascript:history.go(-1) Retour au formulaire]

<?
}

_______________________________________________
MYD-C . <cite>myd-c.over-blog.com</cite>
0
Rejoignez-nous