我希望你在 update.js 中使用測驗變數但是當我用作變數時它顯示錯誤但是當我直接傳遞這個值時它可以作業有人可以告訴我如何使用動態變數來改變購物車中現有產品的數量
我已經更新了我的代碼它將允許用戶僅添加 5 個專案,超過 5 個專案將被洗掉它將創建如下所示的字串 32082238341235:0,39470423048307:0,32164693278835:0,321646938315891
最后所有的 ID 和數量將由 update.js 更新
我在最后一步出現錯誤顯示 {"status":404,"message":"Cart Error","description":"Cannot find variant"}
當我嘗試更新所有產品時
jQuery.getJSON('/cart.js', function(cart) {
var items_new = cart.items;
var count = 0;
count = cart.item_count;
var item_to_remove = count - 5;
if (count > 5) {
var item_to_remove = count - 5;
var combine = ""
if (item_to_remove > 0) {
for (var i = 0; i < items_new.length; i ) {
if (count > 5) {
var c_id = items_new[i].variant_id;
var c_quantity = items_new[i].quantity;
if (c_quantity >= item_to_remove) {
var q = c_quantity - item_to_remove
var data_multiple = c_id ":" q ",";
debugger;
count = count - item_to_remove;
console.log(data_multiple);
var combine = combine data_multiple;
} else {
var data_single = c_id ":" 0 ",";
count = count - c_quantity;
item_to_remove = item_to_remove - c_quantity
console.log(data_single)
var combine = combine data_single;
}
}
}
console.log(combine.slice(0, -1));
var test = combine.slice(0, -1);
console.log({
updates: {
test
}
});
jQuery.post('/cart/update.js', {
updates: {
test
}
});
}
t._rerenderCart()
}
t.sidebarDrawer.open()
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
uj5u.com熱心網友回復:
您需要test在括號內存盤為物件{},然后updates使用擴展...運算子傳遞給。
var test = {39470423048307 : 0, 32164693278835 : 0, 32164693835891 : 1};
console.log({updates: {...test}});
jQuery.post('/cart/update.js', {updates:{...test}});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
在更新后的代碼中,您將字串傳遞給updates而不是物件。您應該從 for 回圈內的資料創建一個物件并將該物件傳遞給updates. 請參閱以下行// CHANGE HERE:
...
var combine = {};
if (item_to_remove > 0) {
for (var i = 0; i < items_new.length; i ) {
if (count > 5) {
var c_id = items_new[i].variant_id;
var c_quantity = items_new[i].quantity;
if (c_quantity >= item_to_remove) {
var q = c_quantity - item_to_remove;
// CHANGE HERE
combine[c_id] = q;
count = count - item_to_remove;
} else {
// CHANGE HERE
combine[c_id] = 0;
count = count - c_quantity;
item_to_remove = item_to_remove - c_quantity;
}
console.log(combine);
}
}
// CHANGE HERE
var test = combine;
console.log({
updates: test
});
jQuery.post('/cart/update.js', {
updates: test
});
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/403338.html
標籤:
