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 :

Fonction en paramètre d'une fonction


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Par défaut Fonction en paramètre d'une fonction
    Bonjour,

    Je bute sur un petit problème où je ne sais pas comment je pourrais récupérer la valeur présente dans la fonction passée en paramètre de la fonction principale. Voici le passage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function rechercheAdresse(lat, long){
        var geo = new Mappy.api.geolocation.Geocoder();
     
        geo.geocode(new Mappy.api.geo.Coordinates(long, lat), f);
     
        function f(results){
       	 results[0].Placemark.name;
       }  
     
    }
    Je souhaiterai récupérer la valeur "results[0].Placemark.name" hors de la fonction rechercheAdresse. Comment puis-je faire ?

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut
    Il faut simplement que tu déclares ta variable en dehors de ta fonction.

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Par défaut
    Je ne vois pas ce tu veux dire, déclarer la variable results en dehors ?

  4. #4
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Hé bien quelque chose du genre par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var variable_globale; //variable utilisable partout dans la page
    
    
    function rechercheAdresse(lat, long){
        var geo = new Mappy.api.geolocation.Geocoder();
        
        geo.geocode(new Mappy.api.geo.Coordinates(long, lat), f);
     
       function f(results){
       	variable_globale =  results[0].Placemark.name;
       }  
    }

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Par défaut
    J'avais essayé mais cela ne fonctionne pas. Lorsque je fais un alert() sur cette variable après avoir appelé la fonction, celle-ci est vide

    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 temp;
     
    function rechercheAdresse(lat, long){
    	var geo = new Mappy.api.geolocation.Geocoder();
     
        geo.geocode(new Mappy.api.geo.Coordinates(long, lat), f);
     
        function f(results){
       		 temp = results[0].Placemark.name;
     
       		 alert("temp dans fonction : " + temp);  // Pour verifier la valeur
       	}  
     
    }
     
    rechercheAdresse(47.934437, 4.808208);
     
    alert(temp);
    Le alert(temp) à la fin est affiché en premier et ainsi il est vide

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    une fonction dans une fonction ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Han oui... On a déjà posé cette question plusieurs fois. La réponse doit-être sur ce forum à mon avis (voir sous-forum Mappy).

    Essayez toujours un truc du style :

    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 rechercheAdresse(lat, long){
           var temp;
    	var geo = new Mappy.api.geolocation.Geocoder();
     
           geo.geocode(new Mappy.api.geo.Coordinates(long, lat), f);
     
    function f(results){
       		temp = results[0].Placemark.name;
                    alert(temp);
       	} 
           alert(temp);
           return temp;  	    
    }
     
    var test = rechercheAdresse(47.934437, 4.808208);
     
    alert(test);

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Par défaut
    Citation Envoyé par vermine Voir le message
    Han oui... On a déjà posé cette question plusieurs fois. La réponse doit-être sur ce forum à mon avis (voir sous-forum Mappy).

    Essayez toujours un truc du style :

    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 rechercheAdresse(lat, long){
           var temp;
    	var geo = new Mappy.api.geolocation.Geocoder();
     
           geo.geocode(new Mappy.api.geo.Coordinates(long, lat), f);
     
    function f(results){
       		temp = results[0].Placemark.name;
                    alert(temp);
       	} 
           alert(temp);
           return temp;  	    
    }
     
    var test = rechercheAdresse(47.934437, 4.808208);
     
    alert(test);
    La variable temp (apres la fonction f) ainsi que la variable test sont undifined . Seule l'alert() de temp dans la fonction f contient quelque chose.
    Je vais jeter un oeil sur le forum approprié en attendant mais si quelqu'un a une aide je suis preneur


    EDIT : Ne trouvant pas de solution au problème de fonction asynchrone, j'ai trouvé la même fonctionnalité en php

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/07/2007, 13h44
  2. Passage de fonction en paramètre d'une fonction.
    Par Berzerk_ dans le forum C++
    Réponses: 9
    Dernier message: 04/06/2007, 13h31
  3. fonction en paramètre d'une fonction ?
    Par tuxout dans le forum Général Python
    Réponses: 1
    Dernier message: 02/06/2007, 15h54
  4. fonction comme paramètre d'une fonction
    Par velociraptor5679 dans le forum C++
    Réponses: 8
    Dernier message: 17/06/2006, 18h19
  5. Réponses: 4
    Dernier message: 01/12/2005, 12h33

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