[英]How can I use data returned in an Ajax POST call outside the return function?
[英]How to use data outside of function returned from POST or GET method of jquery?
如何使用從jQuery的POST或GET方法返回的函數之外的數據?
我的問題是我通過jquery post方法獲取一些數據..問題是,每當我獲取數據時,我就能夠在函數內部使用它,而實際上我希望該數據在函數外部使用。它不起作用...
function getlatlanfromjs() {
$(document).ready(function() {
var uid = $(".track_textbox").val();
$.post("getLatLan.php", {userid: uid}, function(data) {
var i;
for (i = 1; i < 2; i++) {
initialize(data[i]["latitude"], data[i]["longitude"]);
}
}, "json");
alert(data[1]["latitude"]); //this is actually not alerting.. what is the reason ?
});
}
因為此時數據變量超出范圍。 下面的代碼會將數據分配給本地recievedData ,您可以在處理函數范圍之外使用它。 盡管您仍然只能在請求完成后才能訪問recievedData變量。
$(document).ready(function() {
var recievedData;
var uid = $(".track_textbox").val();
var promise = $.post("getLatLan.php", {userid: uid}, function(data) {
recievedData = data;
var i;
for (i = 1; i < 2; i++) {
initialize(data[i]["latitude"], data[i]["longitude"]);
}
}, "json");
promise.done(function() {
alert(recievedData[1]["latitude"]); });
});
這好一點...
這樣,您就不會錯過執行。 如果將代碼包裝到閉包中,則以后也可以調用它。 因此,即使您的“ getlatlanfromjs”已經執行,您的alertFn仍然存在,並且在$.post
完成后將被調用。
函數getlatlanfromjs(){$(document).ready(function(){var uid = $(“。track_textbox”)。val();
var alertFn = function(data) { alert(data[1]["latitude"]); }; $.post("getLatLan.php", {userid: uid}, function(data) { var i; for (i = 1; i < 2; i++) { initialize(data[i]["latitude"], data[i]["longitude"]); } alertFn(data); }, "json"); }); }
var mydata = null;
function getlatlanfromjs() {
$(document).ready(function() {
var uid = $(".track_textbox").val();
$.post("getLatLan.php", {userid: uid}, function(data) {
mydata = data;
var i;
for (i = 1; i < 2; i++) {
initialize(data[i]["latitude"], data[i]["longitude"]);
}
}, "json");
if(mydata != null) alert(data[1]["latitude"]);
});
}
您需要做的只是跟蹤數據范圍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.