2013-01-05 16 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

非常感謝。這已經解決了我的問題。 –