无法从$ .ajax调用内更新父函数变量

时间:2017-12-22 20:18:03

标签: javascript php jquery ajax

我试图将ajax调用中返回的值推送到调用之外的数组,但仍在父函数内部。似乎我无法访问任何变量并从ajax成功语句中更新它。在此先感谢您的帮助。

     var bill = [];
     var billDate = [];
     $(document).ready(function(){
       $.ajax({
         url: '../Js/readData.php',
         data: "",
         dataType: 'json',
         success: function(data)
         {
           //var obj=JSON.parse(data);
           var obj=data;
           for (var x in obj)
             {
               bill.push(obj[x].Amount);
               billDate.push(obj[x].Dates);
             }
         }
      });

1 个答案:

答案 0 :(得分:1)

ajax调用是asynchronous因此,对于成功函数之外的可用性,变量不会立即更新。在从服务器加载数据所涉及的时间之后调用它。

您可能希望将匿名成功函数移动到外部函数,并在那里进行任何处理。



$(document).ready(function(){
 $.ajax({
   url: '../Js/readData.php',
   data: "",
   dataType: 'json',
   success: mySuccessFunction
});

var mySuccessFunction = function(obj) {
     for (var x in obj)
       {
         bill.push(obj[x].Amount);
         billDate.push(obj[x].Dates);
       }  
}