通过ajax访问从php文件返回的json对象

时间:2013-09-10 09:19:31

标签: ajax json

$(function() {

    var sineData;

    $.ajax({
        url : '../_php/loadFromDB.php',
        type : 'POST',
        data : 'getSines',
        dataType : 'json',
        success : function (result) {
            console.log(result);
            sineData=result; 
        },
        error : function () {
           alert("error");
        }
    })

});

在Console-> All-> firebug中的响应我按预期得到以下内容:

[{"userID":"1","email":"user@mail.com","number":"800.256.6547","ext":"5788","startDay":"Sunday","endDay":"Thursday"}]

但是当我看sineData时,它是未定义的。

我希望能够访问sineData[0].email

这些值

我哪里错了?


async: false,最终为我解决了这个问题,但对于大多数应用来说可能不是最佳解决方案。

1 个答案:

答案 0 :(得分:1)

您可能正在访问ajax调用之外的sineData。您正在尝试在异步调用完成之前访问它。试试这个:

function whenIsDone(result){
  // Do whatever you want with the variable result
  console.log(result[0].email);
}
    $.ajax({
        url : '../_php/loadFromDB.php',
        type : 'POST',
        data : 'getSines',
        dataType : 'json',
        success : whenIsDone,
        error : function () {
           alert("error");
      }
  })