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 :

Port�e variable fonction


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    64
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 64
    Par d�faut Port�e variable fonction
    Bonsoir,

    J'utilise l'API de Google pour r�cup�rer une adresse � partir de la latitude et la longitude.
    Voil� 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
        var geocoder = new google.maps.Geocoder();
    	var adresse;
        function test(lat,long)
    	{
            var point = new google.maps.LatLng(parseFloat(lat),parseFloat(long));
            geocoder.geocode({"latLng": point}, function(data, status)
    	    {
                if (status == google.maps.GeocoderStatus.OK && data[0]) 
    			{
    				adresse = data[0].formatted_address;
                } 
    			else 
    			{
                    alert("Erreur: " + status);
                }
    			alert(adresse); //J'ai bien l'adresse
            });
    		alert(adresse);//Undefnined
            return adresse;
        }
    Malgr� tous mes essais je ne suis pas parvenu � g�rer la port�e de la variable adresse que je voudrais utiliser par la suite dans ma page HTML.

    Merci de votre aide

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    Bonsoir,

    Il ne s'agit pas d'un probl�me de port�e mais de moment. Tu as d� remarquer que l'alert undefined apparaissait avant l'alert de l'adresse. C'est que ce code est ex�cut� avant. La fonction pass�e en argument de geocoder.geocode est un callback ex�cut� apr�s une requ�te asynchrone, plus connue sous le nom AJAX.

    Il te suffit donc d'utiliser la variable adresse une fois qu'elle a �t� d�finie, autrement dit apr�s l'appel du callback :

    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
     
    function test(lat,long, callback){
       var point = new google.maps.LatLng(parseFloat(lat),parseFloat(long));
       geocoder.geocode({"latLng": point}, function(data, status){
          if (status == google.maps.GeocoderStatus.OK && data[0]){
             callback(data[0].formatted_address);
          } 
          else {
             alert("Erreur: " + status);
          }
       });
    }
     
    test(123,456, function(adresse){
        alert(adresse); //J'ai bien l'adresse
        //ton code ici
    });
    Si un modo passe par ici, �a fait plusieurs fois que cette question revient et je n'ai pas trouv� dans la FAQ chapitre AJAX un paragraphe expliquant l'utilisation des callbacks, promises etc... ou alors il est bien cach�, auquel cas il faudrait le mettre davantage en avant

  3. #3
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    64
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 64
    Par d�faut
    J'ai essay� de faire comme �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    <script>
    test(1234, 5678, function(adresse){
        alert(adresse); 
        document.write(adresse);
    });
    </script>

    Il y a quelque chose que j'ai pas d� comprendre : le alert marche mais pas le document.write.
    Aucun document.write ne fonctionne � l'int�rieur. Comment puis je faire ?

  5. #5
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  6. #6
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Bonjour,
    exemple d'utilisation trouv� sur le forum APIs Google, m�me si c'est vraiment un probl�me de compr�hension de l'asynchrone comme l'explique Bovino
    - http://www.developpez.net/forums/d12...s/#post6994444
    - http://www.developpez.net/forums/d10...e/#post5947431

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    64
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 64
    Par d�faut
    Merci beaucoup pour votre aide

    J'aurais une derni�re petite question : je souhaiterais r�cup�rer l'adresse dans une variable PHP.
    Mais le PHP est ex�cut� par le serveur contrairement au Javascript donc je ne vois pas comment faire.

    Comment puis-je faire ?

  8. #8
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205

Discussions similaires

  1. Acc�s variables fonction de l'ordre de connexion
    Par lbar012001 dans le forum S�curit�
    R�ponses: 1
    Dernier message: 11/09/2008, 15h21
  2. [SHELL] Probleme script "port�e variable"
    Par bidon dans le forum Solaris
    R�ponses: 2
    Dernier message: 22/03/2008, 17h43
  3. Probl�me contructeur port�e variable
    Par mihaestii dans le forum Langage
    R�ponses: 4
    Dernier message: 22/08/2007, 16h49
  4. [BEEC] Identificateurs (noms de variables, fonctions..)
    Par Gruik dans le forum GTK+ avec C & C++
    R�ponses: 10
    Dernier message: 30/05/2006, 09h29
  5. [D�butant(e)]Port�e de fonction.
    Par Lucky-94 dans le forum C
    R�ponses: 2
    Dernier message: 17/02/2006, 19h02

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