2011-05-17 47 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) 
    } 

});