我正在开发购物车系统,当我第一次尝试添加产品时,它总是会给我一个警告,说明以下内容:
注意:未定义的索引:第9行的... / cart.php中的2
索引:2是id_product
$product=(isset($_SESSION['cart']) and $_SESSION['cart']!="") ? $_SESSION['cart'] : "";
if(isset($_POST['id_product'])){
$product= $_POST['id_product'];
$quantity= $_POST['qty'];
$_SESSION['cart'][$product]+=$quantity;
}
它正在添加值,但是在我刷新将出现在foreach表上的页面之后。我收到的值是正确的。
我在登录另一页后定义默认值。
$_SESSION['car'][0] = 0;
有什么建议吗?
答案 0 :(得分:1)
在语句$_SESSION['cart'][$product]+=$quantity;
中您正在使用+ =,这就是造成问题的原因。
当您第一次添加产品时,它会抛出错误,后续工作正常。
要解决此问题,请执行以下操作。
$quantity= $_POST['qty'];
if(!empty($_SESSION['cart'][$product])){
$quantity = $quantity + $_SESSION['cart'][$product];
}
$_SESSION['cart'][$product] = $quantity;
答案 1 :(得分:1)
您好,您需要将您的id_product设为有效变量
$product=(isset($_SESSION['cart']) and $_SESSION['cart']!="") ? $_SESSION['cart'] : "";
if(isset($_POST['id_product'])){
$product= $_POST['id_product'];
$quantity= $_POST['qty'];
if(!isset($_SESSION['cart'][$product])) {
$_SESSION['cart'][$product] = $quantity;
}
else {
$_SESSION['cart'][$product]+=$quantity;
}
}