我正在努力创建一个非常简单的shopping cart
我使用session
和array
将项目添加到array
并将array
保存到session
并显示此session
中的项目好像喜欢
第1项名称 - 价格
第2项名称 - 价格
然后将总金额计入我的付款方式。
这是我正在使用的代码。
print_r($_SESSION['cart']);
if (isset($_POST['buy'])) {
//header("Location:?pid=18&pl=" . $pl);
$getData = $db->prepare('SELECT * FROM plans WHERE id=?');
$getData->bind_param('i', $pl);
if ($getData->execute()) {
$res = $getData->get_result();
if ($pn = $res->fetch_object()) {
$item['name'] = $pn->plan_name;
$item['price'] = $pn->price_dollar;
if (isset($_SESSION['cart'])) {
$_SESSION['cart'] = $item;
}
}
}
}
问题
( ! ) Notice: Undefined index: cart
修改
这就是我的结尾
if (isset($_SESSION['cart'])) {
foreach ($_SESSION['cart'] as $c) {
echo $c['name'] . '<br />';
echo $c['price'] . '<br />';
echo '<a href="?pid=17&rc=' . $c['code'] . '">Remove item</a><br />';
}
}
if (isset($_POST['buy'])) {
//header("Location:?pid=18&pl=" . $pl);
if (isset($_POST['buy'])) {
$getData = $db->prepare('SELECT * FROM plans WHERE id=?');
$getData->bind_param('i', $pl);
if ($getData->execute()) {
$res = $getData->get_result();
if (($pn = $res->fetch_object()) !== null) {
$proCode = range(1, 100);
shuffle($proCode);
$item['name'] = $pn->plan_name;
$item['price'] = $pn->price_dollar;
$item['code'] = $proCode;
$_SESSION['cart'][] = $item;
}
}
}
}
if (isset($_GET['rc']) && isset($_SESSION['cart'])) {
$rem = $_GET['rc'];
if (($key = array_search($rem, $_SESSION['cart'])) !== false) {
unset($_SESSION['cart'][$key]);
}
}
但仍然删除无效
答案 0 :(得分:0)
正如我所看到的,您正在尝试打印未设置的变量。另外,使用此代码:
if (isset($_SESSION['cart'])) {
$_SESSION['cart'] = $item;
}
您永远无法将商品添加到购物车。我这样做的方法如下:
if (isset($_POST['buy'])) {
$getData = $db->prepare('SELECT * FROM plans WHERE id=?');
$getData->bind_param('i', $pl);
if ($getData->execute()) {
$res = $getData->get_result();
if ($pn = $res->fetch_object()) {
$item['name'] = $pn->plan_name;
$item['price'] = $pn->price_dollar;
$_SESSION['cart'][] = $item;
}
}
}
这样,即使未设置cart
键,也会设置它。同时,它允许您在购物车中放置多个商品。
编辑:接下来要做的是,如果您想要展示您的商品,请执行以下操作:
foreach ($_SESSION['cart'] as $k => $item) {
echo "item $item->id $item->plan_name -- $item->price_dollar";
}