Я разрабатываю веб -сайт E Commerce Laravel Php. На моей странице корзины, когда я нажимаю обновление количества, его внезапно появляется снова в предыдущее значение количества. Но это происходит только в списке первого продукта в корзине. Во -вторых, третье и для других продуктов, это количество обновлений работает правильно. Что бы ни поступало первым в списке продуктов корзины, значение количества приходит к предыдущему значению, когда нажимает кнопку обновления.
Cart Blade
[< /p>
Я разрабатываю веб -сайт E Commerce Laravel Php. На моей странице корзины, когда я нажимаю обновление количества, его внезапно появляется снова в предыдущее значение количества. Но это происходит только в списке первого продукта в корзине. Во -вторых, третье и для других продуктов, это количество обновлений работает правильно. Что бы ни поступало первым в списке продуктов корзины, значение количества приходит к предыдущему значению, когда нажимает кнопку обновления. Cart Blade [< /p> [code]@extends('layout')
@section('content')
Shopping Cart
@if(empty($cart)) Your cart is empty. [url=/shop]Continue Shopping[/url]
function updateTotalPrice() { let totalPrice = 0; let isSelected = false; // Flag to check if at least one checkbox is selected document.querySelectorAll('.product-checkbox').forEach(checkbox => { if (checkbox.checked) { totalPrice += parseFloat(checkbox.dataset.price); isSelected = true; // Set flag to true if any checkbox is selected } });
// Update total price document.getElementById('selected-total').innerText = 'LKR' + totalPrice.toFixed(2);
// Enable or disable the Proceed to Checkout button based on selection const checkoutButton = document.getElementById('checkout-button'); if (isSelected) { checkoutButton.classList.remove('opacity-50', 'cursor-not-allowed'); checkoutButton.classList.add('opacity-100', 'cursor-pointer'); checkoutButton.removeAttribute('disabled'); } else { checkoutButton.classList.add('opacity-50', 'cursor-not-allowed'); checkoutButton.classList.remove('opacity-100', 'cursor-pointer'); checkoutButton.setAttribute('disabled', true); } } document.querySelectorAll('.update-button').forEach(button => { button.addEventListener('click', function () { const productId = this.getAttribute('data-product-id'); const quantityInput = document.querySelector(`.quantity-input[data-product-id="${productId}"]`); const quantity = quantityInput.value;
fetch(`/cart/update/${productId}`, { method: 'PUT', headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content') }, body: JSON.stringify({ quantity: quantity }) }) .then(response => response.json()) .then(data => { if (data.success) { // Update the total price in the checkbox's data attribute const productCheckbox = document.querySelector(`.product-checkbox[value="${productId}"]`); productCheckbox.dataset.price = data.updatedPrice;
// Recalculate the total price updateTotalPrice();
alert(data.message); } else { alert('Failed to update the cart.'); } }) .catch(error => { console.error('Error:', error); }); }); });