Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 选中复选框时调用的操作与取消选中时调用的操作不同_Ajax_Ruby On Rails 4 - Fatal编程技术网

Ajax 选中复选框时调用的操作与取消选中时调用的操作不同

Ajax 选中复选框时调用的操作与取消选中时调用的操作不同,ajax,ruby-on-rails-4,Ajax,Ruby On Rails 4,我想在选中复选框时调用一个控制器操作,在取消选中时调用另一个控制器操作。 也就是说,我想在检查时调用“会议创建”,在取消选中时调用“会议销毁” 这是一个注册表格,您可以通过复选框注册多个会议。选中复选框时,相应的会议将添加到订单(实际上是购物车),取消选中时,相应的会议将从订单中删除 如何根据复选框标记的实际状态调用不同的操作 我不是专业人士,所以我花了足够长的时间才弄清楚应该提供哪些选项(url_),而我不知道如何有条件地提供 请帮忙 <% @meeting.each do |meeti

我想在选中复选框时调用一个控制器操作,在取消选中时调用另一个控制器操作。 也就是说,我想在检查时调用“会议创建”,在取消选中时调用“会议销毁”

这是一个注册表格,您可以通过复选框注册多个会议。选中复选框时,相应的会议将添加到订单(实际上是购物车),取消选中时,相应的会议将从订单中删除

如何根据复选框标记的实际状态调用不同的操作

我不是专业人士,所以我花了足够长的时间才弄清楚应该提供哪些选项(url_),而我不知道如何有条件地提供

请帮忙

<% @meeting.each do |meeting| %>
 <%= check_box_tag 'checkbox', meeting.id, checked = false, :data => {:remote => true, url: url_for(controller: :order, action: :create, meeting_id: meeting), method: :post}, :class => 'checkbox' %>
<% end %>

{:remote=>true,url:url\u for(controller::order,action::create,meeting\u id:meeting),method::post},:class=>'复选框'%>

最后,我手工编写了ajax脚本

$( document ).ready(function() {
  $(".checkbox").click(function() {
    var chb = $(this);
    if($(this).prop('checked')){
      $.ajax({
        url: '/bookings?meeting_id='+chb.attr('value'),
        type: "post"
      });
    }
    else{
     $.ajax({
      url: '/bookings?meeting_id='+chb.attr('value')+'&cart_id='+currentcartid,
      type: "delete"
    });
   };
 });
});

一个ajax脚本就足够了。

我认为您应该编写两个ajax脚本,并根据复选框的状态发送请求。我非常喜欢rails处理ajax的方式,因为您实际上不必编写任何ajax—它是自动处理的。所以,是的,我最终会这么做。但如果有任何railsy方法可以做到这一点,我宁愿使用它。我认为在这种情况下没有rails方法。也许您可以编写javascript来更改选中或取消选中复选框的
data
属性的
url
method