Simple récupération de valeur d'une fonction js

Résolu
Erhic2 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
Erhic2 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un problème qui me parait simple : je cherche à récupérer la valeur name que la fonction get_name() se charge d'aller chercher.
Je ne retourne manifestement donc pas correctement ma valeur.
Mes recherches m'ont jusqu'ici donné plusieurs solutions, mais qui ne m'ont pas encore permis de réussir cette simple récupération de valeur...
Voici mon code, merci beaucoup à vous!

var id = "id=1";
     var name;

      // Récupère le nom en fonction de l'id dans la bdd
      function get_name(){
          $.ajax({
              type: 'POST',
              dataType: 'json',
              url: 'http://path/fichier.php',
              data: id,
              async: false,
              success: function(data){
                    alert (data.name); // affiche bien le nom
                    return data.name;
                  }
              },
              error: function(){
                  alert('Erreur de connexion.');   
              }
          });
      }
      name = get_name();
      alert(name); // affiche 'undefined' 



A voir également:

2 réponses

BlackYoup Messages postés 181 Date d'inscription   Statut Membre Dernière intervention   20
 
Bonjour,

Oui c'est normal puisque le return data.name; de la fonction est propre à la fonction success() de jquery et non pas à la fonction get_name(); d'ou le retour de la valeur undefined

Je te laisse imaginer comment la récupérer :-)
0
Erhic2 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Voici la solution :
 var id = "id=1";
     var name;

      // Récupère le nom en fonction de l'id dans la bdd
      function get_name(){
          $.ajax({
              type: 'POST',
              dataType: 'json',
              url: 'http://sandbox.studio8d.fr/projets/app/serveur/db_queries.php',
              data: id,
              success: function(data){
                    handleData(data.name); // pour permettre à ajax de rester asynchrone on utilise une fonction dite de callback, qui se charge de manipuler le retour serveur une fois qu'il est reçu.
              },
              error: function(){
                  alert('Erreur de connexion.');   
              }
          });
      }

      function handleData(data){ // la fonction de callback sus-citée
            alert(data);
          }

      get_name(); // et l'appelle de la fonction principale
0