0

我在 jquery 中返回数组时遇到问题。我使用 ajax 来响应来自 mysql 的数据,我必须添加它做数组并返回。

这是我的代码:

function addOption()
    {
         itemsarray = [];

        $.ajax({
            type: "POST",
            url: "",
            data:{
                option: 'com_zamowienia',
                view: 'zamowienia_lista',
                task: 'getStatusy'
            },
            success: function(data){
                var obj = $.parseJSON(data);         
                    for (x=0; x<obj.length; x++) {
                        itemsarray.push(obj[x].nazwa);
                }
            }
        });

        return itemsarray;
    }

当我使用:警报(addOption())。我看到空警报

4

1 回答 1

4

由于AJAX是异步的,所以你不能这样返回数组。

所以,你应该使用回调函数来获取数组:

function addOption(callback)
    {
         itemsarray = [];

        $.ajax({
            type: "POST",
            url: "",
            data:{
                option: 'com_zamowienia',
                view: 'zamowienia_lista',
                task: 'getStatusy'
            },
            success: function(data){
                var obj = $.parseJSON(data);         
                for (x=0; x<obj.length; x++) {
                        itemsarray.push(obj[x].nazwa);
                }
                // return you itemsarray through callback function parameter
                callback(itemsarray);
            }
        });
    }

像这样调用函数:

addOption(function(myarr) {
   console.log( myarr );
});
于 2012-09-18T15:54:04.153 回答