2013-04-12 3 views
4

J'ai commencé à utiliser jQuery et ajax pour obtenir des données de la base de données, mais je ne peux pas trouver comment je peux enregistrer le résultat de $ .get() dans la fonction de rappel externe variable.Enregistrer le résultat ajax dans la variable jQuery

Ceci est mon script jquery:

var result="";  
$.get("test.php", function(data){ result=data; }); 
alert(result); 

Ceci est test.php script:

echo "Hello, World"; 

Chaque fois que je lance ce script il alerte "".

+0

afficher le code test.php – Gautam3164

+0

Pouvez-vous les premières données d'alerte dans votre fonction. Assurez-vous qu'il renvoie n'importe quelle valeur. –

+0

@ Gautam3164 il a déjà. – fredrik

Répondre

5

Essayez ceci:

var result = ""; 
$.get("test.php", function (data) { 
    SomeFunction(data); 
}); 

function SomeFunction(data) { 
    result = data; 
    alert(result); 
} 
+0

Merci, cela fonctionne aussi bien. Mon problème était probablement la fonction $ (document) .ready(). –

+0

De rien! –

+1

Vous pouvez simplifier cela plus loin et juste faire: '$ .get (" test.php ", SomeFunction);' – fredrik

1

Votre alerte se déclenchera avant que le $.get ne puisse renvoyer des données.

Faire la course d'alerte sur un événement au lieu - comme un clic:

var result="";  
$.get("test.php", function(data){ result=data; }); 
<span onclick="alert(result);">show alert</span> 
+0

Cela fonctionne, merci beaucoup. Pouvez-vous m'expliquer pourquoi je ne peux pas insérer le script jquery dans $ (document) .ready (function() {}); Parce que quand je le fais, ça ne marche pas. –

+0

Parce que la requête ajax est asynchrone. Cela signifie que cela peut prendre un peu de temps et '$ .get' retournera immédiatement, mais votre code suppose que l'appel' $ .get' a récupéré le résultat de l'appel 'test.php' avant de retourner. – fredrik

Questions connexes