Bonjour tout le monde,
Je cherche la solution depuis plusieurs jours et je ne trouve pas... donc je me suis dit pourquoi pas essayer de demander un peu d'aide.
Alors voilà, j'ai un formulaire en php, qui controle si les champs obligatoires sont remplis, qui envoie les données par email et qui envoie aussi un mail pour dire que la demande a bien été prise en compte.
Jusque là tout fonctionne
Dernièrement, j'ai rajouté une fonction en javascript pour griser des cases :
du type :
J'ai pas mis tout le code car il est assez long, mais encore une fois ça marche donc vous allez me dire, mais tout est parfait ? eh bah non...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function GereChkbox() { if(document.getElementById("option1").checked) { document.getElementById("option3").disabled = "disabled"; document.getElementById("form3Manifestation").disabled = "disabled"; document.getElementById("form3Manifestation").style.backgroundColor="#CCCCCC"; document.getElementById("form3LanguesDebut").disabled = "disabled"; document.getElementById("form3LanguesDebut").style.backgroundColor="#CCCCCC";
Voilà ce qui se passe, quand on clic sur 'option1', certain champs de saisies sont grisés et d'autres sont obligatoires, si on clic sur valider et si par hasard, l'utilisateur a oublié de cocher 'j'accepte les conditions générales', un message d'erreur apparait : 'vous devez accepter les conditions générales'. Mais, les cases grisées ne sont plus grisées et ne sont plus disabled (ce qui peut amener à une certaine confusion).
Voilà comment je teste mon formulaire :
Mon idée était alors de faire un test pour savoir si l'option1 est cochée lorsqu'on clic sur validé et d'appeler alors une fonction javascript pour griser à nouveau les cases:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 if(isset($_POST["valider"])) { // ex données obligatoires : $data["name"] = trim($_POST["name"]); $data["condition"] = trim($_POST["condition"]); $erreur = null; $erreurs = array('name' => 'dans le nom ', 'condition'=> 'il faut accepter les conditions d\'utilisation',
l'écho apparait, ce qui montre que mon test marche, mais le javascript n'est pas lu...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 if (isset($_POST['option1'])){ echo'<script javascript:Coche();</script> '; echo"test"; } else{ echo "ok"; } <script type="text/javascript"> function Coche() { document.getElementById("form3LanguesDebut").disabled = "disabled"; document.getElementById("form3LanguesDebut").style.backgroundColor="#CCCCCC"; </script> }
pourquoi ?
je suis désespérée
merci par avance.
Partager