[Résolu] Javascript / AJAX - Problème de réponse de requete

Javascript / AJAX - Problème de réponse de requete [Résolu] - HTML/CSS - Programmation

Marsh Posté le 26-12-2006 à 10:41:09    

Bonjour,
 
Voici mon probleme, j'ai un script qui vérifie les champs de formulaire, dont un champ qui est l'adresse mail et qui vérifie en temps réel si l'adresse existe dans la base... mais il me retourne de mauvaise réponse :
 

Code :
  1. texte = file('/ajax/Email.php?mail=' + champ.value);
  2. // alert(texte);
  3. if (texte == "true" )
  4. document.getElementById("statut" + idChamp).innerHTML="ok";
  5. else
  6. document.getElementById("statut" + idChamp).innerHTML="pas ok";
  7. function file(fichier)
  8. {
  9. var xhr=null;
  10. if(window.XMLHttpRequest) // Firefox et autres
  11.  xhr = new XMLHttpRequest();
  12. else if(window.ActiveXObject){ // Internet Explorer
  13.  try {
  14.   xhr = new ActiveXObject("Msxml2.XMLHTTP" );
  15.  } catch (e) {
  16.   try {
  17.    xhr = new ActiveXObject("Microsoft.XMLHTTP" );
  18.   } catch (e1) {
  19.    xhr = null;
  20.   }
  21.  }
  22. }
  23. else {  // XMLHttpRequest non supporté par le navigateur
  24.  alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  25. }
  26. xhr.open("GET", fichier, true);
  27. xhr.send(null);
  28. if(xhr.readyState == 4) return(xhr.responseText);
  29. else return(false);
  30. }


 
Email.php retourne "true" ou "false" (en texte)
Si je teste 'texte' avec un alert, il contient bien "true" ou "false"
Cependant ca affiche toujours "pas ok".
 
Une idée ?


Message édité par zecoke le 27-12-2006 à 10:59:16
Reply

Marsh Posté le 26-12-2006 à 10:41:09   

Reply

Marsh Posté le 26-12-2006 à 10:52:15    

Dans ta fonction file :  
    if(xhr.readyState == 4) return(xhr.responseText);
        else return(false);
 
regarde bien ces deux dernieres lignes :o
dans un cas tu retourne une string contenant true et dans l'autre tu retourne un bouleen contenant false.
 
Donc autant faire :  

Code :
  1. if(xhr.readyState == 4) return xhr.responseText=="true" ? true : xhr.responseText;
  2. else return false;


 
et dans ton test tu as juste à faire :  
if (texte) {
 
} else {
 
}

Reply

Marsh Posté le 26-12-2006 à 11:15:18    

L'idée est très bonne, j'ai changé comme tu l'as dis seulement apparemment 'texte' ne prend que la valeur false...
puisque dans le
if(texte){
 
}else{
 
}
 
Ca passe toujours en else

Reply

Marsh Posté le 27-12-2006 à 06:01:58    

fait un alert(typeof(texte)) et dis moi ce que tu vois

Reply

Marsh Posté le 27-12-2006 à 10:58:59    

Nan c'est bon en fait, erreur de ma part
Le resultat dans texte etait de type "true             "
Y'avait des espaces en trop qui bloquaient le tout  :o  
 
Merci quand meme de l'aide ! ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed