Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour j'ai un soucis sur une function jquery
$("#connect").submit(function(){ var identifiant=$("input[type=text]").val(); var password=$.md5($("input[type=password]").val()); var genre=$("#select").val(); var data={identifiant : ""+identifiant+"",password:""+password+"",genre:""+genre+""}; var PageUrl=location.href // et non herf !! var url=PageUrl.split('/')[2]; var reponse=false; var dedans=false;; //return false; var lien=$(this).attr("action"); $.post("http://"+url+"/loggin2/login/verifconnect",data , function(json){ if(json.statut=="success"){ //retour 1 return true; }else{ $("#erreur").show("fast"); //retour 2 return false; } },"json"); //retour 3 return false; });
Mon soucis c'est que meme en cas de succés sa return toujour false. Je m'explique , quand je clique sur submit , il va d'abord retourné le retour 3 et pendant ce temps le $.post s'éxécute et selon la réponse retourne le return 1 ou 2 , mais comme il y a déja eu un retour , celui ci n'est pas pris en compte. Alors j'ai essayer plein de méthode différente mais rien alors je vient posté ici au cas ou quelqu" un aurais une idée ?
Donc le script vérifie juste lorsque l'on clique qu'il y a bien un ensemble login,password + genre existant . Le scripts renvoi "success" ou "erreur" (cela fonctionne bien ).
cdt
Cédric
Dernière modification par lebilien (23-07-2010 10:50:53)
Hors ligne
Normal, tu fais une requète asynchrone.
Soit tu même ce que tu veux faire dans le code de ta fonction de rappel à la requête AJAX (tu peux appelé une fonction par exemple), soit tu fais une requête synchrone :
function(url) { var ret = 0; $.ajax({ url: url, async: false, dataType: 'json', success: function(data) { ret = data.statut; } }); return ret; },
Voir la fonction Ajax dans la doc de JQuery pour les paramètres
Hors ligne
Merci effectivement cela marche beaucoup mieux .
La solution pour ceux qui veulent :
$("#connect").submit(function(){ var identifiant=$("input[type=text]").val(); //password doit etre encode var password=$.md5($("input[type=password]").val()); var genre=$("#select").val(); var data2={identifiant : ""+identifiant+"",password:""+password+"",genre:""+genre+""}; //alert(password); var PageUrl=location.href // et non herf !! var url=PageUrl.split('/')[2]; var reponse=false; var dedans=false;; //return false; var lien=$(this).attr("action"); var ret="erreur"; $.ajax({ type: "POST", url: "http://"+url+"/loggin2/login/verifconnect", data:data2, async: false, dataType: 'json', success: function(data) { ret = data.statut; } }); //cette zone peut etre optimiser if(ret=="success"){ return true; }else{ $("#erreur").show("fast"); return false; } });
Dernière modification par lebilien (23-07-2010 10:55:09)
Hors ligne