我只是想获取返回的数据(来自php脚本,脚本工作正常)
$.post(
"http://labs.*********.com/inc/ajax/till_status.php",
{
id:$("#potentialID").val()
}
).done( function (data) {
currentTillStatus = data;
});
我希望将它放入名为currentTillStatus的变量中。
我哪里错了?
好的,完整代码在这里:
function checkStatus() {
var currentTillStatus = null;
$.post(
"http://labs.*****.com/inc/ajax/till_status.php",
{
id:$("#potentialID").val()
}).done(function (data) {
currentTillStatus = data;
});
console.log("Till Status: " + currentTillStatus);
}
$(document).ready(function () {
checkStatus();
setInterval(checkStatus,1000);
});
结果:
Till Status: null
答案 0 :(得分:2)
默认情况下,jQuery的AJAX请求是异步的,因此除非您将它们更改为同步(例如使用ajaxSetup()
),否则在请求完成之前进行console.log()
调用并done
调用触发1}}回调,将currentTillStatus
保留为null
。
考虑将console.log()
来电转移到done
回调中。
答案 1 :(得分:1)
你可能做的是:
function outputStatus( currentTillStatus ){
console.log("Till Status: " + currentTillStatus);
}
function checkStatus() {
$.post(
"http://labs.*****.com/inc/ajax/till_status.php",
{
id:$("#potentialID").val()
}).done(function (data) {
outputStatus( data );
});
}
$(document).ready(function () {
checkStatus();
setInterval(checkStatus,1000);
});
确保在外部范围内定义currentTillStatus
变量,如
var currentTillStatus;
$.post(
"http://labs.*********.com/inc/ajax/till_status.php",
{
id:$("#potentialID").val()
}
).done( function (data) {
currentTillStatus = data;
});