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

JavaScript Discussion :

[AJAX] récupérer une valeur depuis responseText


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Ministar
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Par défaut [AJAX] récupérer une valeur depuis responseText
    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?

  2. #2
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Par défaut
    reponse=whr.responsetext ==> reponse=xhr.responsetext plutot ?

  3. #3
    Membre confirmé Avatar de Ministar
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Par défaut
    oui j'ai fait la faute en tapant mon sujet mais pas dans mon code!

  4. #4
    Expert éminent

    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
    Par défaut
    Bonjour,
    Citation Envoyé par Ministar Voir le message
    Par contre lorsque je fait reponse=whr.responsetext là rien ne se passe!
    Si !
    Tu as affecté la chaine de caractères retournée par Ajax à la variable "reponse".
    Disons plutôt que rien ne se "voit"
    Mais tu peux ensuite utiliser cette variable (globale ?) pour traiter la réponse d'Ajax ...

    A+

  5. #5
    Membre confirmé Avatar de Ministar
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Par défaut
    pour eclairsir un peu les choses voici mon 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
    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;
    }
    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!

  6. #6
    Expert éminent

    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
    Par défaut
    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+

  7. #7
    Membre confirmé Avatar de Ministar
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Par défaut
    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?

  8. #8
    Expert éminent

    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
    Par défaut
    Citation Envoyé par Ministar Voir le message
    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+

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

Discussions similaires

  1. [ObjC] Récupérer une valeur depuis un scan dans une autre vue
    Par krm666 dans le forum Autres langages
    Réponses: 0
    Dernier message: 09/08/2012, 12h37
  2. Réponses: 2
    Dernier message: 19/04/2011, 02h58
  3. récupérer une valeur depuis un bouton radio
    Par masterPage dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/02/2010, 11h18
  4. Réponses: 10
    Dernier message: 22/08/2007, 18h07
  5. Réponses: 1
    Dernier message: 31/10/2006, 11h15

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