2016-12-16 36 views
0

重複提問告訴我們如何使用ajax/post調用。我的問題是如何使用匿名函數返回的數據。如何使用post(jquery)返回的數據

我正在使用jquery POST方法從mysql獲取一些數據。電話是:

$.post("/php/practice.php",{cat:catname}, function(xdata) { 
    qdata=JSON.parse(xdata); 
}); 

這是工作正常,我得到我所需的數組,qdata。

所以,我可以訪問Q數據,如果我執行以下操作:

$.post("/php/practice.php",{cat:catname}, function(xdata) { 
    qdata=JSON.parse(xdata); 
    alert(qdata[0][0]); 
}); 

Q數據是2- d陣列140點的行和的值都在那裏

但如果我嘗試使用Q數據外部這篇文章,qdata出現'undefined'。例如

$.post("/php/practice.php",{cat:catname}, function(xdata) { 
    qdata=JSON.parse(xdata); 
}); 
alert(qdata[0][0]); 

如果我把警報置於通話之外,我什麼也得不到。

我該如何解決這個問題?

+1

的[?我如何返回從一個異步調用的響應(可能的複製http://stackoverflow.com/questions/14220321/how-do-i-return-the-異步迴應) –

回答

1

你的問題是,qdata只存在於你的函數的作用域中。

要麼instatiate的Q數據變量的函數

var qdata

$.post("/php/practice.php",{cat:catname}, function(xdata) { 
     qdata=JSON.parse(xdata); 
}); 

外或讓我們說你想這個數據傳遞給做了與它的另一個功能。你可以這樣做:

$.post("/php/practice.php",{cat:catname}, function(xdata) { 
     qdata=JSON.parse(xdata); 
     myFunction(qdata); 
}); 

function myFunction(data){ 
alert(data[0]); 
} 
+0

即使他在外面搞定了qdadata也不重要amigo – 2016-12-16 16:08:19

+0

有意思詳細說明嗎? – Brad

+0

你說過'要麼在函數外部創建qdata變量',要麼'或者說你想通過這個...... blahblah'。前者不是必需的或事項,或將改變任何結果。後者是正確的答案 – 2016-12-16 16:13:22