mon code se compose en trois fichier
ajax.php et
index.html le but est de saisir un
email et d'afficher le mot de passe, à partir de ma base de données mysql, en cliquant sur le bouton
afficher.
le fichier index.html
<html>
<head><title>Exemple</title></head>
<script language="JavaScript">
var motdepasse;
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr
}
function ret_motpasse(mail){
var xhr = getXhr()
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
var rep =xhr.responseText; return rep;
}
}
xhr.open("Get","ajax.php?mail="+mail,true);
xhr.send(null);
}
function afficher(){
var email=document.form_aff.email.value;
motdepasse=ret_motpasse(email);
alert("votre mot de passe est :"+motdepasse);
}
</script>
<body>
<form name="form_aff" action="" method="post">
<input type="text" name="email" size="28">
<input type="button" value="afficher mot de passe" onClick="afficher()">
</form>
</body>
</html>
fichier ajax.php:
<?
include "connexion.php";
if(isset($_GET['mail'])){
$email=$_GET['mail'];
$req=mysql_query("select * from membres where email='$email'");
$nbr=mysql_num_rows($req);
if($nbr){
$ligne=mysql_fetch_array($req);
echo $ligne['motpasse'];
}
}
?>
mon probleme est que le variable
motdepasse à la premier execution ne contient rien, pour la deuxieme clique sur le bouton
afficher() il s'affiche le mot de passe de l'email de la premiere execution et ainsi de suite car l'instruction
alert("votre mot de passe est :"+motdepasse); s'execute avant que la fonction
ret_motpasse(email) termine son execution est ça mon problème !!y a t il une solution???