Bonjour!
Lorsque j'affiche mon xhr.responsetext ca me donne la valeur qui été inscrite dans ma page php.
Par contre lorsque je fait reponse=whr.responsetext là rien ne se passe!
Pourquoi?
Bonjour!
Lorsque j'affiche mon xhr.responsetext ca me donne la valeur qui été inscrite dans ma page php.
Par contre lorsque je fait reponse=whr.responsetext là rien ne se passe!
Pourquoi?
reponse=whr.responsetext ==> reponse=xhr.responsetext plutot ?
oui j'ai fait la faute en tapant mon sujet mais pas dans mon code!
pour eclairsir un peu les choses voici mon code :
Edit : le problème est que ca ne passe jamais dans ma condition et que lorsque j'affiche ma variable reponse dans un alert je n'ai aucun message!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 function actualiser_info() { //Création de l'objet xhr----------------------------------------------------- var reponse=""; var xhr= null; if(window.XMLHttpRequest) // Firefox { xhr= new XMLHttpRequest(); } else if(window.ActiveXObject) // Internet Explorer { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } //---------------------------------------------------------------------------- //Ouvre la connexion au serveur en précisant le type de données : xhr.open('GET','./script/actualisationminute.php',true); //On associe à une varible un contenue, ici pour le contenu de la page : xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // On regarde les changement d'état de l'objet xhr xhr.onreadystatechange = function attente(){ // l'état est à 4, requête reçu ! if(xhr.readyState == 4) { reponse=xhr.responseText; } } // Envoi la requete xhr au serveur : xhr.send(null); //if(reponse=="roui") //{ window.location.replace("../../index.php"); } return; }
Il me semble que tu testais "reponse" au mauvais endroit.
As-tu essayé?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if(xhr.readyState == 4) { reponse=xhr.responseText; if(reponse=="roui") window.location.replace("../../index.php"); }
A+
2h de perdu pour une connerie comme ca, ca donne envie de programmer :p
Je te remerci, c'était ça!!
Par contre, pourquoi ca fonctionne comme cela et pas comme je l'avais fait avant?
Entre autre parce que "reponse" est une variable locale (de ta fonction actualiser_info() )
Or, du fait de l'appel asynchrone, lorsque ta fonction attente() sera exécutée, tu ne sera plus dans la fonction actualiser_info().
De plus, tu testais "reponse" au moment de (enfin : immédiatement après) la déclaration de la fonction attente(), et non de son exécution.
A ce moment là, Ajax n'avait pas encore répondu ...
A+
Partager