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

时间:2011-11-24 12:33:39

标签: php session post

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

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

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

在购物车页面上,我创建了一个数量输入框和一个尝试更新每件商品数量的更新链接。示例的作者said需要做什么才能更新数量。但是,我在这方面遇到了麻烦。

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

有人可以使用this示例向我显示要使用的代码,以便更新$ _SESSION ['cart']吗?我试过联系这个例子的作者,但他从未回复过。

更新:以下是我正在使用的代码的相关部分:

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

2 个答案:

答案 0 :(得分:1)

由于可能有多个产品需要更新,因此您需要一个表单来执行此操作。 这是一个了解你必须做的事情的例子。

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

我认为这个例子会让你继续前进。

答案 1 :(得分:-1)

您无法更新会话,但您可以使用以下逻辑。

首先取消你的会话

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

现在创建一个会话

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