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 :

recuperer une variable d'une fonction


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 13
    Points
    13
    Par défaut recuperer une variable d'une fonction
    salut je veux recuperer la variable pos de la fonction initialize pour l'utiliser dans la fonction initialiser vus que les deux sont dans la fonction rechercher caf !!!

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    /////////////////////////////////////////////////
     
    function recherchercaf(){
     var latlng;
     var pos  ;
     initialize();
    function initialize() {
      var mapOptions = {
        zoom: 16,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      };
      latlng = new google.maps.Map(document.getElementById('carte'),
          mapOptions);
     
      // Try HTML5 geolocation
      if(navigator.geolocation) {
       navigator.geolocation.getCurrentPosition(function(position) {
       pos = new google.maps.LatLng(position.coords.latitude,
                                           position.coords.longitude);
     
          var infowindow = new google.maps.InfoWindow({
            map: latlng,
            position: pos,
            content: 'you are here '
          });
          return (pos);     
        }, function() {
          handleNoGeolocation(true);
        });
      } else {
        // Browser doesn't support Geolocation
        handleNoGeolocation(false);
      }
      return (pos);
    }
     
    function handleNoGeolocation(errorFlag) {
      if (errorFlag) {
        var content = 'Error: The Geolocation service failed.';
      } else {
        var content = 'Error: Your browser doesn\'t support geolocation.';
      }
     
      var options = {
        map: latlng,
        position: new google.maps.LatLng(60, 105),
        content: content
      };
     
      var infowindow = new google.maps.InfoWindow(options);
      latlng.setCenter(options.position);
    }
     
    initialize();
    alert(pos);
    google.maps.event.addDomListener(window, 'load', initialize);
     
      // Paramétrage des marqueurs
        var image = "images/location.png"
     
     function initialiser() {
        // Récupération de la latitude et longitude 
     
        // Récupération en AJAX des données des lieux à épingler sur la carte Google map
        $.ajax({
           url   : 'coffeesearch.php',
           error : function(request, error) { // Info Debuggage si erreur         
                     alert("Erreur sous genre - responseText: "+request.responseText);
                    },  
        data : {cofename : $('input:text').val()},
        type : 'POST',  
        dataType : "json",  
        success  : function(data){
                      $("#carte").fadeIn('slow');
                      var infowindow = new google.maps.InfoWindow();    
                      var marker, i;   
                      // Parcours des données reçus depuis le fichier index-map-ajax.php
                      // Récupération de LatLng, Hint et Legende de chaque lieu et création d'un marqueur
                      $.each(data.items, function(i,item){
                         if (item) {
                            if (item.LatLng_lieu!=''){
                               // On sépare la latitude et la longitude
                               var strLatLng = item.LatLng_lieu.split(',');
                             //initialiser l carte
     
                                //creer un maqueur pour l'emplacement 
                               marker = new google.maps.Marker({
                                 position : new google.maps.LatLng(strLatLng[0], strLatLng[1]),
                                 map      : latlng,
                                 icon     : image,
                                 draggable   : true,
                                 title    : item.Titre_lieu
                                });   
     
                               // afficher les info de l'emplacement 
                                 var posit = new google.maps.LatLng(strLatLng[0], strLatLng[1]); 
                                 latlng.setCenter(posit);
           				var line = new google.maps.Polyline({
    					path: [new google.maps.LatLng(35.834637,10.593392), new google.maps.LatLng(strLatLng[0], strLatLng[1])],
    					strokeColor: "#FF0000",
    					strokeOpacity: 1.0,
    					strokeWeight: 7,
    					geodesic: true,
    					map: latlng
    				});
                      google.maps.event.addListener(marker, 'click', (function(marker, i) {
                       return function() {
                       // Affichage de la légende de chaque lie
     
                      }
                    })(marker, i));                              }         
                    //alert('Vérification données reçues '+item.Titre_lieu+' -- '+item.Url_lieu+ ' -- '+item.LatLng_lieu);
                  }
                });                        
              }
            }); 
          } 
    initialiser() ;
      ////////////////////////////////////////////
      return false;
    }

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 560
    Points : 21 622
    Points
    21 622
    Par défaut
    Ben, elle est définie dans recherchercaf() avec var pos;.

    Donc pour y accéder, c'est pos

  3. #3
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 141
    Points
    11 141
    Par défaut
    je crois que guns65 veut récupérer le contenu de pos qui est ici
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       navigator.geolocation.getCurrentPosition(function(position) {
       pos = new google.maps.LatLng(position.coords.latitude,
                                           position.coords.longitude);
    dans sa fonction recherchercaf.

  4. #4
    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
    Points : 9 944
    Points
    9 944
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var pos = initialize();
    la variable est retournée, il suffit de l'assigner.

  5. #5
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    @tous
    je crois que guns65 n'a pas compris comment fonctionne AJAX

    ce qu'il veux c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pos = initialise();
    mais initialise() est une fonction qui fait un appel ajax. donc quand elle se termine la valeur pos retournées n'est pas initialisé.

    @guns65
    Je te conseille de lire la doc les cours les tutos sur le fonctionnement AJAX.
    Je te conseille de te documenter sur la programmation événementielle.

    lorsque tu auras compris le fonctionnement des deux tu mettra cette idée à la poubelle. et tu envisageras une toute autre approche pour ton besoin. (que tu n'a pas exposé)

    A+JYT

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 660
    Points
    44 660
    Par défaut
    Bonjour,
    je rajouterais aux conseils judicieux de sekaijin cette lecture L'API geolocalisation en HTML5, ton soucis est traité dans l'exemple #2.

Discussions similaires

  1. [Débutant] Affecter une variable d'une classe C# à une variable Javascript
    Par SultanGeek dans le forum C#
    Réponses: 0
    Dernier message: 20/06/2015, 20h42
  2. Recuperer le nom d'une variable dans une variable String
    Par aliwassem dans le forum Langage
    Réponses: 11
    Dernier message: 23/10/2009, 12h38
  3. Recuperer le resultat d'une requete dans une variable
    Par mat777 dans le forum VBA Access
    Réponses: 9
    Dernier message: 05/02/2008, 13h34
  4. [VBA-E]- Recuperer le resultat d'une somme dans une variable
    Par ekynoxx dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/05/2007, 11h03
  5. recuperer la valeur d'une variable dans une nouvlle page
    Par gloglo dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 11/01/2007, 17h08

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