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

Bibliothèques & Frameworks Discussion :

Récupérer une valeur


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre émérite Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Par défaut Récupérer une valeur
    Bonjour à tous,

    Voila, j'utilise prototype pour faire mes requêtes ajax ,
    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
     
    var Result;
    new Ajax.Request('https://www...........', {
                method: 'get', parameters: '&action=....', 
     
                onComplete: function(Request)
                {    
     
                    var docXML = (new DOMParser()).parseFromString(Request.responseText, "text/xml");
     
                    if(typeof(docXML.getElementsByTagName('XXX')[0].childNodes[0]) == 'object')
                       Result = docXML.getElementsByTagName('call_forwarding')[0].childNodes[0].data;
     
                },
                onFailure:function(Request){Result= "false"}
                }
            );
    alert(result);
    Mon problème est que la variable result n'est pas accessible un fois sorti de la fonction Request de la classe Ajax!! donc pas moyen de recupéré le resultat de l'excution de la requete !!

    si quelqu'un a une solution ....
    merci

  2. #2
    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,
    ce code fait-il partie d'une fontion ?
    Si c'est le cas, il faut en sortir la déclaration de result.

    Sinon, le problème doit être ailleurs ...

    Qu'affiche le alert() ?

    A+

  3. #3
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    C'est normal parce que ta fonction anonyme onFailure:function(Request){Result= "false"} n'as pas accès au scope global, donc elle ne voit pas et ne peut pas modifier ta variable resultat.

    Edit: J'ai du faire le même genre de choses dans la semaine, je te file ce que j'ai fait. Pas sur que ca soit l'idéal mais ca marche pour moi (si par ailleurs yavait mieux, je suis preneur parce que je vois pas tellement comment faire):

    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
    function Obj (){
      this.member = null;
    }
     
    Obj.prototype.ajaxQuery = function(){
       var xhr = getXHR(); // fonction qui retourne un objet xhr
       xhr.onreadystatechange = function (transport, context){
    	return function(){
    		// if response is ok	
    		if(xhr.readyState == 4 && xhr.status == 200){
    	  		context.member = xhr.responseText;
    	  	}
    	}
       }(xhr, this); 
     
        xhr.open("GET",url, false);
        xhr.send(null);
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var o = new Obj();
    o.ajaxQuery();
    alert(o.member);
    Attention au mode de transport, pour ne pas accéder à la variable avant que celle ci ne soit initialisée du à une requete asynchrone.

  4. #4
    Membre émérite Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Par défaut
    ce code fait-il partie d'une fontion ?
    Si c'est le cas, il faut en sortir la déclaration de result.
    En effet ce code fait parti d'une fonction, j'ai essayer de faire de result un attribut de ma classe et même de le sortir de la classe en déclarant un var result au début de mon fichier, mais sans aucuns résultats...

    Le alert n'affiche rien ou m'affiche le contenu de la variable result si elle est declaré en dehors de la fonction.

    C'est normal parce que ta fonction anonyme onFailure:function(Request){Result= "false"} n'as pas accès au scope global, donc elle ne voit pas et ne peut pas modifier ta variable resultat.
    c'est la conclusion que j'en tire mais alors peut on faire sortir des valeur de ces fonctions onFaillure et onComplete.

  5. #5
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Je crois pas que tu puisses le faire avec prototype, c'est pour ca que pour l'occasion j'avais fais une requête complète à la main (cf mon édit au dessus)

  6. #6
    Membre chevronné
    Avatar de Eric Berger
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2002
    Messages : 346
    Par défaut
    Tu ne vois pas une différence entre tes deux variables?

    et

  7. #7
    Membre émérite Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Par défaut
    Tu ne vois pas une différence entre tes deux variables?

    Code :
    var result;
    et
    Code :
    Result
    Juste une erreur de recopiage... Le problème est que l'on ne peut pas avoir de variable quand on utilise prototype!
    =

Discussions similaires

  1. [XSL]récupérer une valeur de plusieurs fichiers XML
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 05/02/2006, 00h32
  2. Réponses: 5
    Dernier message: 09/09/2005, 17h51
  3. problème pour récupérer une valeur dans ma bd (débutante)
    Par auryn111 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/08/2005, 17h49
  4. Réponses: 2
    Dernier message: 17/06/2005, 13h38
  5. Réponses: 2
    Dernier message: 11/12/2004, 21h20

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