我使用这个示例使用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