Назначение состоит в том, чтобы в таблице отображались некоторые продукты со ссылкой «добавить в корзину», которая отправляет пользователя на другую страницу, которая использует информацию, указанную в ссылке, для получения данных для отображения общей суммы покупки. Таблица добавляет новые позиции, по которым щелкают, но не обновляет фактическое количество, когда элемент нажимается более одного раза.
Я попытался поместить эхо в чеке для товара, уже находящегося в корзине, и он устанавливает количество 1 до обновления количества и 2 после обновления, но по какой-то причине это на самом деле не обновляется. То же самое касается цены.
<?php
session_start();
if(empty($_SESSION['cart'])) {
$_SESSION['cart'] = array();
}
$cart = $_SESSION['cart'];
$id = $_GET['productid'];
$name = $_GET['productname'];
$price = $_GET['productprice'];
$qty = 1;
$alreadyHas = 0;
foreach($cart as $cartKey => $cartItem) {
if(!empty($cartItem['pid'])) {
if($cartItem['pid'] == $id) {
$cartItem['qty'] = $cartItem['qty'] + 1;
$cartItem['total'] = $cartItem['price'] * $cartItem['qty'];
$alreadyHas = 1;
}
}
}
if($alreadyHas == 0) {
$cartItem = array(
'pid' => $id,
'name' => $name,
'price' => $price,
'qty' => $qty,
'total' => $price
);
array_push($cart, $cartItem);
}
$_SESSION['cart'] = $cart;
?>