Shopping cart
Résolu
Richard92
-
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je voudrais ajouter le button remove a coter de la quantité de produit mais je n'y arrive pas, je comprend pas la logique.
je voudrais ajouter le button remove a coter de la quantité de produit mais je n'y arrive pas, je comprend pas la logique.
<!DOCTYPE html>
<html>
<head>
<title>
Panier Js
</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="style.css">
<script src="store.js" async></script>
</head>
<body>
<section class="container content-section">
<h2 class="section-header">Coffee</h2>
</section>
<section class="container content-section">
<div class="shop-items">
<div class="shop-item">
<span class="shop-item-title">Expresso</span>
<img class="shop-item-image" src="img/img-1.jpg">
<div class="shop-item-details">
<span class="shop-item-price">$19.99</span>
<button class="shop-item-button" type="button">ADD TO CART</button>
</div>
</div>
<div class="shop-item">
<span class="shop-item-title">Cappuccino</span>
<img class="shop-item-image" src="img/img-2.jpg">
<div class="shop-item-details">
<span class="shop-item-price">$6.99</span>
<button class="shop-item-button" type="button">ADD TO CART</button>
</div>
</div>
</div>
</section>
<section class="container content-section">
<h2 class="section-header">CART</h2>
<div class="cart-row">
<span class="cart-item cart-header cart-column">ITEM</span>
<span class="cart-price cart-header cart-column">PRICE</span>
<span class="cart-quantity cart-header cart-column">QUANTITY</span>
</div>
<div class="cart-items">
</div>
<div class="cart-total">
<strong class="cart-total-title">Total</strong>
<span class="cart-total-price">$0</span>
</div>
<button class="btn btn-primary btn-purchase" type="button">PURCHASE</button>
</section>
</body>
</html>
if (document.readyState == 'loading') {
document.addEventListener('DOMContentLoaded', ready)
}else {
ready()
}
function ready() {
var removeCartItemsButtons = document.getElementsByClassName('btn-danger')
for (var i = 0 ; i < removeCartItemsButtons.length; i++) {
var button = removeCartItemsButtons[i]
button.addEventListener('click', removeCartItem)
}
var quantityInputs = document.getElementsByClassName('cart-quantity-input')
for (var i = 0 ; i < quantityInputs.length; i++) {
var input = quantityInputs[i]
input.addEventListener('change', quantityChanged)
}
var addToCartButtons = document.getElementsByClassName('shop-item-button')
for (var i = 0; i < addToCartButtons.length; i++) {
var button = addToCartButtons[i]
button.addEventListener('click', addToCartClicked)
}
}
function removeCartItem(e) {
var buttonClicked = e.target
buttonClicked.remove()
}
function quantityChanged(e) {
var input = e.target
if(isNaN(input.value) || input.value < 0) {
input.value = 1
}
updateCartTotal()
}
function addToCartClicked(event) {
var button = event.target
var shopItem = button.parentElement.parentElement
var title = shopItem.getElementsByClassName('shop-item-title')[0].innerText
var price = shopItem.getElementsByClassName('shop-item-price')[0].innerText
var imageSrc = shopItem.getElementsByClassName('shop-item-image')[0].src
addItemToCard(title, price, imageSrc)
}
function addItemToCard(title, price, imageSrc) {
var cartRow = document.createElement('div')
var cartItems = document.getElementsByClassName('cart-items')[0]
cartRow.classList.add('cart-row')
var cartRowContents =
`
<div class="cart-item cart-column">
<img class="cart-item-image" src="${imageSrc}">
<span class="cart-item-title">${title}</span>
</div>
<span class="cart-price cart-column">${price}</span>
<input class="cart-quantity-input" type="number" value="1">
<button class="btn-danger">Remove</button>
`
cartRow.innerHTML = cartRowContents;
cartItems.append(cartRow)
}
function updateCartTotal() {
var cartItemContainer = document.getElementsByClassName('cart-items')[0]
var cartRows = cartItemContainer.getElementsByClassName('cart-row');
var total = 0;
for(var i = 0; i < cartRows.length; i++) {
var cartRows = cartRows[i]
var priceElement = cartRows.getElementsByClassName('cart-price')[0]
var quantityElement = cartRows.getElementsByClassName('cart-quantity-input')[0]
var price = parseFloat(priceElement.innerText.replace('$', ''))
var quantity = quantityElement.value
total = total + (price * quantity)
}
document.getElementsByClassName('cart-total-price')[0].innerText = '$' + total
}
https://www.commentcamarche.net/infos/25917-marquer-un-fil-de-discussion-comme-etant-resolu/