购物车:删除作为应该
问题描述:
我有一些问题,不能正常工作“删除”我的购物车脚本(是开关的情况下)购物车:删除作为应该
case 'delete':
if ($cart) {
$items = explode(',',$cart);
$newcart = '';
foreach ($items as $item) {
if ($_GET['id'] != $item) {
if ($newcart != '') {
$newcart .= ','.$item;
} else {
$newcart = $item;
}
}
}
$cart = $newcart;
$_SESSION['cart'] = $cart;
}
break;
示例:$ _SESSION [ 'cart'] = 1,2,1; 问题是,当客户购买两倍相同的物品时,它会同时删除。我该如何解决它?
答
您需要设置一个标志,是这样的:
$items = explode(',',$cart);
$newcart = '';
$flag = false;
foreach ($items as $item) {
if ($_GET['id'] == $item && $flag === false) { $flag = true; continue; }
if ($newcart != '') {
$newcart .= ','.$item;
} else {
$newcart = $item;
}
}
$cart = $newcart;
答
这个文档片断可以帮助:
$items = explode(',',$cart);
$newcart = array();
$deleted = false;
foreach ($items as $item) {
if (!$deleted && $_GET['id'] == $item) {
$deleted = true;
continue;
}
$newcart[] = $item;
}
print_r(implode(',',$newcart));
+0
是的!像魅力一样工作。非常感谢,我看到以这种方式构建新购物车的效果更好。 – chenci 2012-02-18 22:50:41
你能澄清一下究竟* *出了问题在哪里呢? – 2012-02-18 22:35:15
我把它放在下面:它删除时,它删除所有具有相同ID的项目(如果客户买了两次相同的东西,它删除两次) – chenci 2012-02-18 22:39:33