Проблема обновления количества в PHPPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Проблема обновления количества в PHP

Сообщение Anonymous »

Я разрабатываю веб -сайт E Commerce Laravel Php. На моей странице корзины, когда я нажимаю обновление количества, его внезапно появляется снова в предыдущее значение количества. Но это происходит только в списке первого продукта в корзине. Во -вторых, третье и для других продуктов, это количество обновлений работает правильно. Что бы ни поступало первым в списке продуктов корзины, значение количества приходит к предыдущему значению, когда нажимает кнопку обновления.
Cart Blade
[< /p>

Код: Выделить всё

@extends('layout')

@section('content')

Shopping Cart

@if(empty($cart))
Your cart is empty.
[url=/shop]Continue Shopping[/url]



Total Price: LKR0.00


Proceed to Checkout


@else





Select
Image
Name
Price
Quantity




@foreach($cart as $productId => $item)





[img]{{ asset([/img]

{{ $item['name'] }}
LKR{{ number_format($item['price'], 2) }}


@csrf
@method('PUT')

Update





@csrf
@method('DELETE')
Remove



@endforeach



Selected Total Price: LKR0.00


@csrf
Clear Cart




Proceed to Checkout


@endif



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);
});
});
});



@endsection
< /code>
] < /p>
контроллер
[< /p>


Подробнее здесь: [url]https://stackoverflow.com/questions/79393482/quantity-updating-issue-in-php[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»