2011-05-17 45 views
0

我正在用Rails的ExtJS ...我試圖通過「複選框列」刪除網格中選擇的記錄...我dnt有任何想法如何處理選定的「數組」通過軌道控制網的記錄... plzz指導我... 上刪除按鈕的代碼如下:extjs複選框網格刪除rails

var sm = prodgrid.getSelectionModel(); 
delbtn.on("click", function() { 
    var sel = sm.getSelections(); 
    Ext.Ajax.request({ 
     url: 'products/delete', 
     // method:'DELETE', 
     params: { 
      'prodid': sel 
     } 

    }); 

}); 

我如何遍歷在我的Rails控制器「SEL」陣列? plzz幫助

+0

你得到什麼錯誤?它不應該很難遍歷數組嗎? – sra 2011-05-17 10:16:23

回答

0

使用Ext.each遍歷數組:

var sm = prodgrid.getSelectionModel(); 
delbtn.on("click", function() { 
    var sel = sm.getSelections(); 

    Ext.each(sel,function(data){ 

     /// your stuff 
     Ext.Ajax.request({ 
      url: 'products/delete', 
      // method:'DELETE', 
      params: { 
       'prodid': data.id // the parameter 
      } 
     }); 
     ///// end  

    },this); 
}); 
+0

thnx warung..i gt :) :) – Shruti 2011-05-26 01:59:37

0

您不能直接傳遞數組到Rails控制器。 This article應該可以幫助你理解傳遞到軌道控制器的參數。

這就是說,你需要將數組轉換爲字符串。您可以使用類似這樣的功能對於數組轉換爲字符串:

function array_params(arry) { 
    var paramvar = ""; 
    arry.each(function(s){ 
    paramvar = paramvar.concat("arr[]=",s,"&");}); 
    paramvar = paramvar.replace(/&$/,""); 
    return paramvar; 
} 

最後呼籲:

Ext.Ajax.request({ 
    url: 'products/delete', 
    // method:'DELETE', 
    params: { 
     'prodid': array_params(sel) 
    } 

});