Bonjour à tous,
Après maintes et maintes tentatives je viens vous exposer mon problème dans lequel je patauge...
Voici ma fonction, (je suis dans un $(document).ready(function() {):
Dans laquelle j'essaye désespérément d'affecter false à fieldsOk. Or du moment où je sors de ma fonction, fieldsOk repasse à true alors que si je l'affiche au moment de l'affectation (dans le succes) il est bien à false.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 isProspectAlreadyExist(email,{ succes:function(idUser){ fieldsOk = false; message_erreur = '<div class="txt_error">Le mail existe déjà dans notre base de données. Vous êtes déjà inscrit.</div>'; $(".email_error").html(message_erreur); $(".email_error").removeClass("display_none"); $(".email_ok").addClass("display_none"); } ,echec:function(idUser){ } });
Voici ma fonction isProspectAlreadyExist:
J'ai essayé plusieurs contournement, affecter une valeur a un input type hidden que j'avais mis dans mon php mais le resultat est le meme, du moment que je sors de la fonction il n'a plus la même valeur! J'imagine que la page est rechargée ou un truc dans le genre, je ne comprends pas bien.
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 function isProspectAlreadyExist(mail,callback) { var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function() { // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200) { idUser = xhr.responseText; idUser = trim(idUser); if(idUser=="") { callback.echec(idUser); return; } else { callback.succes(idUser); return; } } } // Ici on va voir comment faire du post xhr.open("POST","php/controller/UserController.php?method=isProspectAlreadyExist",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send("emailUser="+mail); }
Pour etre le plus explicite possible, voici ce que je veux faire. Dans le cas où mon fieldsOk est à false, je fais un "return false" pour afficher mon message d'erreur et ne pas continuer. J'ai essayé de mettre le return false directement dans le cas du "succes" mais cela ne marche pas non plus.
J'espère avoir été assez claire, n'hésitez pas à me poser des questions et merci par avance.
Partager