我使用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']吗?我试过联系这个例子的作者,但他从未回复过。
更新:以下是我正在使用的代码的相关部分:
答案 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