根据选择的选项更新购物车内容

时间:2015-06-03 19:01:54

标签: ruby-on-rails ruby ruby-on-rails-4

在实施购物车时,我希望允许用户更改购物车中的商品数量。现在,我有一个选择标签来显示数量,并预先选择正确的数量。我想要做的是:只要用户在select标签中选择另一个选项,就会更新Cart中的数量。我该怎么办?现在数量显示如下:

<%= form_tag do %>
    <%= select_tag "quantity", options_for_select((1..item.quantity).to_a, quantity) %>
<% end %>

还有一件事。我的show_cart是一个不包含结帐按钮的部分,如果有任何帮助的话。

1 个答案:

答案 0 :(得分:0)

这是你可以通过AJAX实现的。只要用户选择<select>标记的值,您就需要执行jQuery。

让我们select_tag在HTML中生成以下<select>标记:

<select id="quantityOptions">
  <option value="1">One item</option>
  <option value="2">Two items</option>
  <option value="3">Three items</option>
  <option value="4">Four items</option>
</select> 

在您的Javascript文件中,您需要查找.change()事件,并在其中编写AJAX调用。

$("#quantityOptions").change(function() {
    var currentQuantity = $(this).val(); // Will give you the currenlty selected option in <select> tag
    $.ajax(
        method: "POST",
         url: http://localhost:3000/update_quantity, // Or whatever custom URL you have built
        data: { val: currentQuantity },
        success: function() {
            console.log("The value finally reached on the server");
        } 
    );
});

当然,你可以更多地改进它;但你明白你会这样做。并且不要忘记在服务器上进行一些身份验证,可能需要在每个请求中附加请求令牌。