Итак, из комментариев я делаю вывод, что вы хотите следующее:
- У вас есть корзина, в которой пользователь может изменить количество каждого товара, введя число или нажав стрелки вверх / вниз при вводе числа
- Всякий раз, когда изменяется amont, интерфейс должен обновляться, и далее сервер должен применить новую сумму к корзине покупок для последующего использования и / или оформления заказа.
- Вы не хотите, чтобы пользователь нажимал кнопку отправки или обновлял страницу каждый раз, когда вводится новая сумма.
Чтобы достичь этого, вы должны создать специальный скрипт php, который изменяет сумму на стороне сервера и отвечает новой суммой и итоговой ценой.
updateQuantity.php
$productId = $_POST["productId"];
$quantity = $_POST["quantity"];
// Add error handling, authentication, ...
// ...
// Set the new quantity on server side
// This is just an example, the functions might not be existent!
$shoppingCartItem = shoppingCartDao::getShoppingCartItem($productId);
$success = $shoppingCartItem->setAantal($quantity);
$response = [
"success" => $success,
"productId" => $productId,
"quantity" => $shoppingCartItem->getAantal(),
"exclVAT" => $shoppingCartItem->getTotalPriceExclVAT(),
"inclVAT" => $shoppingCartItem->getTotalPriceInclVAT()
];
header('Content-Type: application/json');
echo json_encode($response);
С вашего клиентского веб-сайта вы можете использовать запрос AJAX для обновления количества.
Сначала укажите свой номер, введите идентификатор или атрибут данных
echo '<input id="number" class="productQuantity" type="number" min="0" max="20" step="1" value ="'.$item->getAantal().'" data-product="'.$item->getProductId().'"/>';
, а затем добавьте прослушиватель onChange (или любой другой, удовлетворяющий вашим потребностям):
$(".productQuantity").on("change", function() {
var productId = $(this).data("product");
var quantity = $(this).val();
$.ajax({
url: "updateQuantity.php",
data: {
productId: productId,
quantity: quantity
},
success: function(resp) {
// Maybe check if the resp.quantity is the same as the desired quantity, otherwise reset the input field
if (resp.success) {
// Seems to be successful...
// Update prices
$("...").text(resp.exclVAT);
$("...").text(resp.inclVAT);
}
}
});
});
Это должно помочь вам заставить его работать. Это не копируемый код.