salut a tous.
Alors voila, je désire vérifier dans ma base de donnée si le login existe et si le mot de passe est correct avant d'autoriser effectivement le joueur à se connecter. Pour ce faire, merci AJAX et prototype.
Donc l'action en étapes :
le joueur tape ses id : si tout ok dans la vérification JS , le formulaire doit partir, sinon bah... il recommence
Soucis :
Il faut imbriquer des fonctions et sous fonctions pour parvenir a faire ça, sauf que JS ne veux pas me récupérer mes paramètres d'une fonction à l'autre, et surtout dans le temps imparti: il exécute tout n'importe comment en parallèle.
Bref, comment faire ?
Le formulaire :
le JS :
Donc le soucis c'est que le true ou false n'est pas visible de la fonction locale puisque le return se fait dans la sous fonction qui récupère le résultat de la requete asynchrone. [I]Bilan: le formulaire part toujours même sans etre valide car pas de retour du false...[/I]
J'ai essayé pleins de méthodes, mais la je bloque !
Merci de m'aider a faire cette vérification asynchrone du pass et login :cry:!
Modifié par xlight (17 Jul 2008 - 18:53)
Alors voila, je désire vérifier dans ma base de donnée si le login existe et si le mot de passe est correct avant d'autoriser effectivement le joueur à se connecter. Pour ce faire, merci AJAX et prototype.
Donc l'action en étapes :
le joueur tape ses id : si tout ok dans la vérification JS , le formulaire doit partir, sinon bah... il recommence

Soucis :
Il faut imbriquer des fonctions et sous fonctions pour parvenir a faire ça, sauf que JS ne veux pas me récupérer mes paramètres d'une fonction à l'autre, et surtout dans le temps imparti: il exécute tout n'importe comment en parallèle.
Bref, comment faire ?
Le formulaire :
<form action="<?php echo $this->baseUrl ?>/auth/login" method="post" [B]onsubmit="return verif_login(this);">[/B]
<span>Pseudo :</span>
<span><input type="text" name="login" id="login" value="" maxlength="20"/></span>
<span>Passe :</span>
<span><input type="password" name="password" id="password" value="" maxlength="20"/></span>
<span><input type="submit" name="seConnecter" value="Connexion" /></span>
le JS :
function verif_login()
{
var login = $F('login');
var password = $F('password');
var chemin = $F('chemin');
if(login == "" || password =="" )
{
Ext.MessageBox.alert('Connexion', "Veuillez remplir les 2 champs.");
return false;
}
else
{
//fonction qui vérifie presence login ds la BD
var url = chemin+'/auth/verifautorisation';
new Ajax.Request(
url,
{
method: 'post',
postBody: 'login='+login+'&password='+password,
onComplete: function(originalRequest){
reponse = originalRequest.responseText;
if(reponse== "nok")
{
alert("inconnu");
return false;
}
else if(reponse=="pbpass")
{
alert("pb de pass");
return false;
}
else if(reponse=="ok")
{
alert("valide");
return true;
}
}
});
}//fin else
}
Donc le soucis c'est que le true ou false n'est pas visible de la fonction locale puisque le return se fait dans la sous fonction qui récupère le résultat de la requete asynchrone. [I]Bilan: le formulaire part toujours même sans etre valide car pas de retour du false...[/I]
J'ai essayé pleins de méthodes, mais la je bloque !
Merci de m'aider a faire cette vérification asynchrone du pass et login :cry:!
Modifié par xlight (17 Jul 2008 - 18:53)