2013-04-12 107 views
4

我開始使用jQuery和ajax從數據庫中獲取數據,但我無法找出如何將$ .get()的結果保存到外部回調函數的變量中。存儲ajax結果在jQuery變量

這是我的jQuery腳本:

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

這是test.php的腳本:

echo "Hello, World"; 

我每次運行此腳本它提醒 「」。

+0

發佈test.php的代碼的功能 – Gautam3164

+0

你能不能先警告裏面的數據。確保它返回任何值。他已經擁有了 –

+0

@ Gautam3164。 – fredrik

回答

5

試試這個:

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

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

謝謝,這也適用。我的問題可能是$(document).ready()函數。 –

+0

不客氣! –

+1

你可以進一步簡化,只需要:'.get(「test.php」,SomeFunction);' – fredrik

1

$.get可以返回任何數據之前,您的警報將被解僱。

就事件報警,而不是運行 - 例如點擊:

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

這個作品,非常感謝。你能解釋我爲什麼我無法將jquery腳本的內容插入$(document).ready(function(){});因爲當我這樣做,它不起作用。 –

+0

因爲ajax請求是異步的。這意味着可以花費任何時間來完成並且'$ .get'將立即返回,但是你的代碼假定'$ .get'調用在返回之前已經獲取了'test.php'調用的結果。 – fredrik

相關問題