在实施购物车时,我希望允许用户更改购物车中的商品数量。现在,我有一个选择标签来显示数量,并预先选择正确的数量。我想要做的是:只要用户在select标签中选择另一个选项,就会更新Cart中的数量。我该怎么办?现在数量显示如下:
<%= form_tag do %>
<%= select_tag "quantity", options_for_select((1..item.quantity).to_a, quantity) %>
<% end %>
还有一件事。我的show_cart是一个不包含结帐按钮的部分,如果有任何帮助的话。
答案 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");
}
);
});
当然,你可以更多地改进它;但你明白你会这样做。并且不要忘记在服务器上进行一些身份验证,可能需要在每个请求中附加请求令牌。