我在Rails中實施了購物車,因此當顯示所述購物車時,每件商品的數量都顯示爲選擇標籤以允許用戶更改數量(亞馬遜做它)我這是怎麼生成的選擇標記,這是我的車,每item
做:根據欄中多個選擇標籤的值更新購物車
<%= form_for :session, url: update_cart_path, html: { method: 'post'} do |f| %>
<%= f.select :quantity_updated,
options_for_select((1..item.quantity).to_a, quantity),
{} ,{id: "quantity_select_#{item_id}"} %>
<% end %>
這是我的JavaScript代碼:
$(document).ready ->
$("#quantity_select").change ->
$.ajax "update_cart",
method: "POST",
data: {quantityUpdated: $("#quantity_select option:selected").val()},
dataType: "script",
error: (jqXHR, textStatus, errorThrown) ->
console.log("AJAX error: #{textStatus}")
success: (data, textStatus, jqXHR) ->
console.log("AJAX OK")
在Cart
每個item
有item_id
。爲了讓每個商品的數量選擇標籤具有唯一的ID,我將{id: "quantity_select"}
更改爲{id: "quantity_select_#{item_id}"}
。我必須在JavaScript文件中更改哪些內容才能正確處理每個select_tag更改?我如何將item_id
發送給控制器?我試過url: update_cart_path(item_id: item_id)
但沒有奏效。我也試過$.ajax "update_cart(#{item_id})
,那也沒用。現在控制器不知道哪個項目的數量發生了變化。
你有多個'$(「#quantity_select」)'?你不能有多個具有相同ID的元素... –
我將它改爲'$(「#quantity_select _#{item_id}」)'。 – modsoussi
您可以編輯您的問題,以便我們可以在運行代碼時看到代碼? –