Se connecter avec
S'enregistrer | Connectez-vous

lancer une fonction php à partir d'un bouton ("button")

Dernière réponse : dans Programmation
Partagez
Contenus similaires
Posez votre question

guillaumech a dit :
+1

Utilise JavaScript, le php ne s'utilise que côté serveur.

non je peux pas utiliser javascript car ma fonction afficher() interroge le serveur pour recuperer une reponse et ça n'est possible q'avec php et non javascript.
j'est essayer d'utiliser ajax mais j ai rencontrer un pb de syncronisation j ai met:
xhr.open("Get","ajax.php?mail="+email,false); au lieu de xhr.open("Get","ajax.php?mail="+email,true);
mais rien à changer.

Donne tout le code englobant le problème. Certain pourront t'aider, pas moi, car je n'ai pas assez de connaissance en Ajax. Mais ton problème se résoudra en effet par l'Ajax.

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.
Citation :

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???
Posez votre question