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

APIs Google Discussion :

gecode, récupérer variable. [Google Maps]


Sujet :

APIs Google

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Points : 10
    Points
    10
    Par défaut gecode, récupérer variable.
    Salut,
    j'ai un pti soucis avec le code ci-dessous. J'essaye de geocoder une adresse textuelle et stocker (pas afficher) les longitudes et latitudes. La variable latlng ne semble definie qu'a l'interieur de l'appel. Pour preuve, si j'assigne la valeur 3 a point_test, quand je sors de la fonction et que j'affiche la valeur de point_test, celle-ci est revenue a 1...

    Au final, je veux pouvoir modifier la variable globale, et je n'y arrive pas.
    Je capte pas un truc basique apparemment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var point_test = 1;
     
    geocoder.getLatLng(address, function(latlng) {
      if (!latlng) {
        alert(address + ' not found');
      } else {
        point_test = 3;
        alert(point_test);	
      }
    });
     
    alert(point_test);
    Merci de m'eclairer,
    Morchea.

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bon,
    il semble que getLatLng() soit une fonction asynchrone. Elle attend que la reponse revienne du serveur. Mais le reste du script est execute avant d'avoir la reponse, ce qui explique cela.

    Bon, ca m'aide a comprendre, je planche dessus... :-)

    Morchea.

  3. #3
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    La fonction geocoder.getLatLng est asynchrone (c'est un appel AJAX), donc:
    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 point_test = 1;
    //asynchrone		
    geocoder.getLatLng(address, /*cette fonction sera appelée plus tard, quand gmap aura renvoyé le résultat via AJAX */ 
    function(latlng) {
      if (!latlng) {
        alert(address + ' not found');
      } else {
        point_test = 3;
        alert(point_test);	
      }
    });
    //ce alert s'exécute donc de suite d'ù la valeur 1 obtenue 
    alert(point_test);
    ERE

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Merci,
    cela explique tout.

    La resolution ici est hors topic, et concerne ajax.
    Bien a toi,
    Morchea.

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

Discussions similaires

  1. Récupérer variable PERL en PHP
    Par damoud dans le forum Web
    Réponses: 1
    Dernier message: 21/07/2006, 13h00
  2. Récupérer variables d'1 <form> et les utiliser dans X
    Par honeyz dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 20/04/2006, 11h39
  3. Récupérer variable d'un document enfant sur doc parent ?
    Par renaud26 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/03/2006, 14h22
  4. [SQL*PLUS] Récupérer variable
    Par tonysky dans le forum Oracle
    Réponses: 4
    Dernier message: 15/02/2006, 07h56
  5. [ActionScript] Récupérer variable dans URL
    Par JohnBlatt dans le forum Flash
    Réponses: 2
    Dernier message: 20/07/2005, 10h21

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