2013-01-05 18 views
0

下面是我的代码:获得空数组时通数据从PHP jQuery的

<script src="jquery-1.8.3.js" type="text/javascript"> 
</script> 

<script type="text/javascript"> 

var obj=[] ; 
    function getData(){ 
     $.ajax({ 
      url:'jqueryJsonTest.php', 
      type:'POST', 
      dataType: 'json', 
      cache: true, 
      success:function(data){ 
      obj = data ; 
      alert ("alert 1: "+obj.length); 
      } 
     }); 
     } 

$(document).ready(function() { 
    getData(); 
    alert("alert 2: "+obj.length); 
    alert("alert 3: "+obj.length); 
}); 

</script> 

为什么保存数据的空数组后的第一个结果?

回答

0

您正在制作一个异步AJAX调用,它立即返回。它在success回调执行之前返回(您正在将obj设置为返回的内容)。你应该做的是做进一步的处理中success处理 - 或 - 使用async: false选项(不推荐)

尝试通过回调处理您getData()功能,使您的Ajax调用同步。即类似的:

function getData(mycallback){ 
    $.ajax({ 
     url:'jqueryJsonTest.php', 
     type:'POST', 
     dataType: 'json', 
     cache: true, 
     success:function(data){ 
      mycallback(data); 
     } 
    }); 
} 

$(document).ready(function() { 
    getData(function(obj) { 
     alert("alert 2: "+obj.length); 
     alert("alert 3: "+obj.length); 
    }); 
}); 
+0

非常感谢。这已经解决了我的问题。 –