如何使用更新数量输入框更新$_SESSION变量


How to update $_SESSION variable using update quantity input box

我使用这个示例使用PHP创建了一个添加购物车页面。这两个页面的php代码在这里:

http://jameshamilton.eu/sites/default/files/products.php_.txt

http://jameshamilton.eu/sites/default/files/cart.php_.txt

在购物车页面上,我创建了一个数量输入框和一个更新链接,用于更新每个商品的数量。这个例子的作者说了为了更新数量需要做什么。然而,我在做这件事时遇到了麻烦。

我不确定如何更新存储在$_SESSION['cart']中的数量与用户在数量框中输入的数量,在购物车页面。我假设在case: update的switch语句中必须存在一些代码,以便更新链接调用动作:update来更新每个项目的数量。

有人可以告诉我使用什么代码,为了更新$_SESSION['cart'],使用这个例子?我试着联系这个例子的作者,但他没有回应。

更新:这是我使用的代码的相关部分:

https://soc.uwl.ac.uk/~ 21099475/code.txt

由于可能有多个产品需要更新,因此需要一个表单来完成此操作。这是一个例子,让你明白你必须做什么。

<form action="<?php echo $_SERVER[PHP_SELF]?>?action=update" method="post">
    <input type="text" name="quantity[2]" value="3" />
    <input type="text" name="quantity[3]" value="2" />
    <input type="text" name="quantity[4]" value="1" />
    <button type="submit" name="submit">Update</button>
</form>

一旦表格提交,你必须检查已经张贴的数量,并增加或减少它们。

if(!empty($_POST['quantity'])) {
        foreach($_POST['quantity'] as $productID => $quantity) {
            if(!empty($_SESSION['cart'][$productID])) {
                $quantity = intval($quantity);
                if($quantity > 0) {
                    $_SESSION['cart'][$productID] = $quantity;
                }
                else {
                    unset($_SESSION['cart'][$productID]);
                }
            }
        }
    }

你不能更新会话,但是你可以使用下面的逻辑。

首先取消会话设置

unset($_SESSION['cart']['product_id']); //don't unset session,unset only quantity session 

创建会话

$_SESSION['cart']['product_id'] = 4; //updated value