2012-09-18 95 views
0

我有問題要返回數組在jquery中。我用ajax來響應來自mysql的數據,我不得不添加它做數組並返回。返回數組jquery

這是我的代碼:

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())。我看空警戒

+0

默認情況下,AJAX調用是異步的。你不能從函數返回結果,因爲它在結束時沒有發生。 – Orbling

回答

3

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