使用$ .get从PHP脚本获取数据

时间:2013-11-24 19:48:06

标签: jquery ajax

我只是想获取返回的数据(来自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

2 个答案:

答案 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;
});