从php传递数据到JQuery时获取空数组

时间:2013-01-05 15:50:11

标签: 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>

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

1 个答案:

答案 0 :(得分:0)

您正在进行异步AJAX调用,它会立即返回。它在执行success回调之前返回(您将obj设置为返回的是什么)。你应该做的是在success处理程序中进行进一步处理 - 或者 - 使用async: false选项使你的ajax调用同步(不推荐)

尝试将回调处理程序传递给getData()函数。例如:

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);
    });
});