0
$(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->Response in firebug の下で、期待どおりに以下を取得します。

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

しかし、私が見るsineDataと未定義です。

これらの値にアクセスできるようにしたい sineData[0].email

どこが間違っていますか?


async: false, 私のためにこれを修正することになりましたが、おそらくほとんどのアプリケーションにとって最良の解決策ではありません.

4

1 に答える 1

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");
      }
  })
于 2013-09-10T09:24:45.607 に答える