Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1129 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP et ajax pb??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP et ajax pb??

n°1670108
khalid1980
Posté le 12-01-2008 à 14:53:22  profilanswer
 

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>


Citation :

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???

mood
Publicité
Posté le 12-01-2008 à 14:53:22  profilanswer
 

n°1670159
czh
Posté le 12-01-2008 à 18:22:12  profilanswer
 

Tu utilises de l'Ajax en asynchrone, il faut l'utiliser en synchrone.

n°1670200
CyberDenix
Posté le 12-01-2008 à 19:10:52  profilanswer
 

czh a écrit :

Tu utilises de l'Ajax en asynchrone, il faut l'utiliser en synchrone.


Ajax = Asynchronous Javascript And Xml  :o

Message cité 1 fois
Message édité par CyberDenix le 12-01-2008 à 19:11:22

---------------
Directeur Technique (CTO)
n°1670245
khalid1980
Posté le 12-01-2008 à 21:49:02  profilanswer
 

je veux ajax en mode synchrone et non en asynchrone j ai essayé mes script avec IE et Opera est ça marche tres bien mais pas avec Firefoxe

n°1670294
czh
Posté le 13-01-2008 à 01:03:20  profilanswer
 

CyberDenix a écrit :


Ajax = Asynchronous Javascript And Xml  :o


 
Ouais c'est vrai, au temps pour moi, AJAX c'est asynchrone, sinon c'est pas de l'AJAX. :D
Je voulais plutôt dire "utilise XMLHttpRequest en mode synchrone et pas asynchrone".
 
Bah y'a tout dans ta page de tutorial : http://siddh.developpez.com/articles/ajax/
 
Tiens je suis gentil je te mâche le travail :
 

Citation :


function ret_motpasse(mail){
var xhr = getXhr()
    xhr.open("Get","ajax.php?mail="+mail,true);
    xhr.send(null);    
    return xhr.responseText;
}


 
Au fait dans ton code d'origine :
 

Citation :


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);    
     
}  


 
Quand tu fais le return, logiquement tu n'es plus dans le contexte de la fonction "ret_motpasse" mais dans celui de ta fonction de callback "function()".


Message édité par czh le 13-01-2008 à 01:05:28

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP et ajax pb??

 

Sujets relatifs
Php et formulaire menu déroulant[sécurité formulaire] AJAX + PHP
[PHP](AJAX) - Pb Caractères spéciaux (apostrophe) ..euh RESOLU en faitGénérateur de formulaire en PHP (et ajax ca serait mieux)
Bons bouquins sur PHP, MySQL, XML, AJAX, MERISE ?PHP et AJAX - Update
[PHP] : Framework Ajax - le quel choisir ?[Php / Ajax] - Creation de cv en ligne
[PHP/Ajax/XSL/CSS/Etc] Explorateur Web[PHP] Test: Jeu de Carte: Manille en PHP + AJAX
Plus de sujets relatifs à : PHP et ajax pb??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR