我让这添加到购物车的功能,我想显示新的购物车总数后,添加到购物车,而不重新加载页面。现在,我需要重新加载页面,以显示添加了产品后的购物车更改。
(有些代码可以是丹麦语,希望可以。)
HTML (添加到购物车按钮)
<div class="buy-item flex flex-ai-c">
<button data-product="{{product.id}}" data-action="add" class="add-button add-btn update-cart">TILFØJ TIL KURV</button>
<div class="flex flex-ai-c flex-jc-c">
<span class="cart-quantity-text">ANTAL</span>
<input class="cart-quantity-input" type="number" value="1">
</div>
</div>JS
function addCookieItem(productId, action) {
if(action == 'add'){
if(cart[productId] == undefined){
cart[productId] = {'quantity':parseInt(antal.value)}
}else{
cart[productId]['quantity'] += parseInt(antal.value)
}
}
if(action == 'add-from-cart'){
cart[productId]['quantity'] += 1
}
if(action == 'remove-from-cart'){
cart[productId]['quantity'] -= 1
if(cart[productId]['quantity'] <= 0){
console.log('Remove Item')
delete cart[productId]
}
}
if(action == 'delete'){
delete cart[productId]
}
console.log('Cart:', cart)
document.cookie = 'cart=' + JSON.stringify(cart) + ";domain=;path=/"
location.reload()
}姜戈
def cookieCart(request):
try:
cart = json.loads(request.COOKIES['cart'])
except:
cart = {}
print('Cart:', cart)
items = []
order = {'get_cart_total':0, 'get_cart_items':0}
cartItems = order['get_cart_items']
for i in cart:
try:
cartItems += cart[i]['quantity']
product = Product.objects.get(id=i)
total = (product.price * cart[i]['quantity'])
order['get_cart_total'] += total
order['get_cart_items'] += cart[i]['quantity']
item = {
'product':{
'id':product.id,
'name':product.name,
'price':product.price,
'imageURL': product.imageURL,
'stripe-price': product.stripe_price_id,
'description': product.description,
'vare_nr': product.vare_nr,
},
'quantity': cart[i]['quantity'],
'get_total': total
}
items.append(item)
except:
pass
return {'cartItems': cartItems, 'order': order, 'items':items}
def cartData(request):
cookieData = cookieCart(request)
cartItems = cookieData['cartItems']
order = cookieData['order']
items = cookieData['items']
return {'cartItems': cartItems, 'order': order, 'items':items}发布于 2022-03-19 09:18:43
您可以使用(非常)不同的方法来解决这个问题:
当然还有其他方法,但我认为对于Django来说,这些方法将是主要的解决方案,也是文档最多的解决方案。
https://stackoverflow.com/questions/71536379
复制相似问题