IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Interroger le serveur de manière itérative


Sujet :

AJAX

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 65
    Points
    65
    Par défaut [AJAX] Interroger le serveur de manière itérative
    Bonjour à tous,

    J'aimerais vérifier l'état d'une variable (sans recharger la page sur laquelle je suis) qui peut changer d'état dans le temps, celle-ci se trouve dans un autre fichier PHP.
    En fonction de cette vérification, une div déjà présente disparaîtra ou pas.

    Pour cela j'imagine une boucle sur une requête ajax asynchrone, mais ça ne fonctionne pas. Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var xhr_object = null;
    xhr_object = new XMLHttpRequest();
    xhr_object.open("GET", "checkOracle4DL.php", true);
     
    xhr_object.onreadystatechange = function() {
    	if(xhr_object.readyState == 4) {
    		if (xhr_object.responseText==0)
    			document.getElementById('wait').style.display="true";
    			else
    				document.getElementById('wait').style.display="none";
    		}
    	}
     
    xhr_object.send(null);
    Le fichier "checkOracle4DL.php" me retourne avec un echo 1 ou 0.


    ça fonctionne si je recharge à la main ; c'est lorsque je veux ajouter une boucle que ça coince.
    C'est sur le "xhr_object.send(null);" que je dois boucler ?

    Merci pour votre aide.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par ClarusAD Voir le message
    mais ça ne fonctionne pas.
    un peu juste comme diagnostic, non ?

    Erreur Javascript ?
    Erreur serveur ?
    Message d'erreur ? Ligne(s) de code concernée(s) ?
    Comportement constaté / comportement attendu ?
    Debuggage / tests effectués ( résultat) ?

    Bref, développe ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 65
    Points
    65
    Par défaut
    Oops...

    ouais, tu as raison : en fait c'est certainement ma boucle qui pose problèmes car ça me coince le navigateur.
    Cependant je progresse, puisque j'ai trouvé une demi solution :
    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
    function checkOracle() {
    	var xhr_object = null;
    	xhr_object = new XMLHttpRequest();
    	xhr_object.open("GET", "checkOracle4DL.php", true);
     
    	xhr_object.onreadystatechange = function() {
    		if(xhr_object.readyState == 4) {
    			if (xhr_object.responseText==0)
    				document.getElementById('wait').style.display="true";
    				else
    					document.getElementById('wait').style.display="none";
    			}
    		}
     
    	xhr_object.send(null);
    }
     
    setInterval("checkOracle()",1000);
    L'état initial de mon fichier "checkOracle4DL.php" est à 0 ;
    lorsqu'il passe à 1, la div disparaît (c'est ce que je voulais).
    Mais si il repasse à 0, la div ne se ré-affiche pas.

    C'est mieux, mais ce n'est pas encore ça...

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    J'en conclus qu'il n'y a pas de messages d'erreurs (encore faut-il que ton nav les affiche)

    Essaye d'utiliser les véritables valeurs pour le style.display et le bon type (string) pour ton test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (xhr_object.responseText=="0")
      document.getElementById('wait').style.display="block";
    else
      document.getElementById('wait').style.display="none";
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 65
    Points
    65
    Par défaut
    J'ai trouve : c'est dans la propriété CSS, pour afficher la div :
    document.getElementById('wait').style.display="";
    et non display="true" !

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut


    Relis mieux ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interroger le serveur amazon
    Par Fxg dans le forum Delphi
    Réponses: 8
    Dernier message: 16/01/2007, 17h15
  2. [AJAX] Comment faire de l'ajax vers deux serveurs
    Par wtfu dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/07/2006, 13h39
  3. Client XML-RPC java qui interroge un serveur XML-RPC PHP : pb de paramètre de retour
    Par sbelli dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 13/06/2006, 11h09
  4. interroger un serveur
    Par vincentweb dans le forum Langage
    Réponses: 5
    Dernier message: 31/10/2005, 21h55
  5. Comment interroger un serveur de jeu ?
    Par RazielReaver dans le forum Web & réseau
    Réponses: 5
    Dernier message: 28/06/2005, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo