0

jqueryで配列を返すのに問題があります。私はmysqlからデータを応答するためにajaxを使用しました。配列を追加して返す必要があります。

これは私のコードです:

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 に答える