Bonjour,
Voilà mon problème.
J'ai un formulaire et je souhaite faire une vérification en Ajax du formulaire (j'ai besoin de faire des requêtes pour ça).
Voici ce que ca donne niveau code :
Ma page Ajax renvoie donc un tableau d'erreur ou non que je traite avec JSon.
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 <script type="text/javascript"> function check() { var soumettre = true; alert("debut: " + soumettre); // affichage de true new Ajax.Request('ajax/verif_ref.php', { evalJSON: true, evalScripts:true, method: 'get', parameters: $('frm').serialize(true), onSuccess: function(transport, json) { if( json.reference.error_reference != null ) { $('error_reference').innerHTML = json.reference.error_reference; soumettre = false; alert("test reference " + soumettre); // affichage de true très bref puis false } if( json.modele.error_modele != null ) { $('error_modele').innerHTML = json.modele.error_modele; soumettre = false; alert("test modele " + soumettre); // affichage de true très bref puis false } if( json.poids.error_poids != null ) { $('error_poids').innerHTML = json.poids.error_poids; soumettre = false; alert("test poids " + soumettre); // affichage de true très bref puis false } if( json.prix.error_prix != null ) { $('error_prix').innerHTML = json.prix.error_prix; soumettre = false; alert("test prix " + soumettre); // affichage de true très bref puis false } } }); alert("test fin " + soumettre); // affichage de true return false; } </script> <form action="" method="post" name="frm" id="frm" onsubmit="return check();" >
Si le tableau contient une valeur différent de null, j'affiche une petite phrase d'erreur.
Le problème c'est qu'il faut que je renvoie vrai au faux à la fin pour envoie les données du formulaire uniquement s'il n'y a pas d'erreur.
J'ai donc créé une variable que j'initialise à true (j'ai testé également en chaine de caractère).
Si je passe dans une de mes 4 conditions je le met à false. Or quand je fais mon alert(soumettre) (dans chacune de mes conditions), la fenetre va m'afficher true pendant un millième de seconde puis false. Et le dernier test de fin va me retourner true alors qu'elle sont passées dans les conditions au dessus.
Je ne comprend pas pourquoi...
Merci d'avance pour vos réponse.
Partager