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