PHP添加到购物车

时间:2012-02-22 17:51:40

标签: php

ATM,我正在测试我的购物车。当我加载一个带有要添加到购物车的产品的新页面时,他们添加了添加正常但我也得到了错误,例如:

注意:未定义的索引:

中的cart_25

25是与产品相关联的索引。

  if (isset($_GET['add'])) {
   $_SESSION['cart_'.(int)$_GET['add']]+=1;
   }


   foreach($_SESSION as $name => $value) {
    if ($value>0){
     if (substr($name,0,5)=='cart_') {
       $name = substr($name, 5, (strlen($name)-5));
       echo $name.'<br />';
     }

任何有用的提示都会很棒

3 个答案:

答案 0 :(得分:3)

以这种方式尝试:

$key = 'cart_' . $_GET['add'];
$_SESSION[$key] = isset($_SESSION[$key]) ? $_SESSION[$key] + 1 : 1;

答案 1 :(得分:1)

而不是使用cart_{index}为什么不让数组成为多个维度?然后你的foreach循环会简单得多。您可能还希望拥有添加和删除项目的功能或方法,这样您就不必每次都进行相同的测试。

function add_to_cart($index, $amount) {
   if (!isset($_SESSION['cart'][$index])) {
      $_SESSION['cart'][$index] = 0;
   }
   $_SESSION['cart'][$index] += $amount;
}

答案 2 :(得分:0)

$_SESSION['cart_'.(int)$_GET['add']]+=1; $_SESSION['cart_'.(int)$_GET['add']] = **$_SESSION['cart_'.(int)$_GET['add']]** + 1; 所以第一次它将是未定义的,所以

if (!isset($_SESSION['cart_'.(int)$_GET['add']])) {
    $_SESSION['cart_'.(int)$_GET['add'] = 1;
} else {
    $_SESSION['cart_'.(int)$_GET['add']]+=1;
}