【问题标题】:Rails checkbox_tag with ajax带有ajax的Rails checkbox_tag
【发布时间】:2013-01-24 17:05:46
【问题描述】:

我试图弄清楚如何使用 Rails 3.2.11 中的复选框通过 ajax 传递数据。我认为以下行

<%= check_box_tag(
        "institution_ids_#{inst.name.gsub(" ", "")}",
          inst.id,
          false,
        data: {
          remote: true,
          institution_id: inst.id}) %>

当我更改复选框的状态时,我可以看到控制器被正确调用(特别是控制器的 index 方法,这是我想要的,因为那是我所在的视图),但是,我似乎无法从控制器上的 params 哈希访问机构 ID 变量。有人可以解释一下我如何使用 ajax 在复选框中将数据从视图传递到控制器。我认为 remote: true 函数会使用我设置的附加参数(它没有)正确调用控制器(确实如此)。

【问题讨论】:

    标签: ruby-on-rails ajax checkbox


    【解决方案1】:

    你为什么不使用 jquery 来拨打Ajax

    <%= check_box_tag( "institution_ids_#{inst.name.gsub(" ", "")}", inst.id, false %>
    
    <script>
         $('#checkbox_id').change(function(){
            $.get('controller/action?inst_id='+$(this).val(), function(data,status){
                if(status == 'success'){
                  alert(data)
                 }
            })
         })
       </script>
    

    在控制器中:

    def action
       inst_id = params[:inst_id]
       #do something
       render :text => "success" 
    end
    

    【讨论】:

    • 我想我可以做这样的事情。我有很多复选框,我认为如果我可以内联完成所有操作,这将更具可读性。这不可能吗?
    • 尝试这样使用::data =&gt; { :remote =&gt; true, :url =&gt; { :action =&gt; action_name, :institution_id =&gt; inst.id} }
    • 所以上面没有工作,但这确实数据:{remote:true,url:url_for(action::index,institution_id:inst.id),institution_id:inst.id}跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 2013-01-15
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多