PHP购物车帮助 - 附加选项

时间:2013-05-07 07:32:02

标签: php cart shopping

我之前已经购买过购物车,因为每件商品都没有任何特殊属性,如颜色或尺寸,但我当前的项目有颜色属性。在过去,我使用以产品ID命名的Session变量来保存数量。像这样:

在我的产品页面顶部的包含页面中:

/* initialize all quantities to 0 */
for ($i=0; $i <=$maxID; $i++) {
  if (!isset($_SESSION['product'.$i]))
    $_SESSION['product'.$i] = 0;
}

/* keeps a running total of the number of products to be purchased */
for ($j=0; $j<=$maxID; $j++) {
  $cartCount += $_SESSION['product'.$j];
}

在产品页面上我有:

   if (isset($_POST['addtocart'])) {
     $_SESSION['product'.$id] += 1;
     header ("Location: products.php?id=$id");
   }

然后在结帐页面上,我使用for循环通过$ id来浏览购物车。

然而现在我被卡住了,因为我不仅要保存每件产品的数量,还需要保存颜色,项目#是相同的。任何人都可以帮助我将上面的代码转换成可以做同样事情的东西,还增加了跟踪所订购颜色的功能吗?例如,我可能会购买一件绿色商品#1和一件蓝色商品#1。这些必须单独显示,因为颜色不同,即使项目编号相同。此外,没有数量框,只有一个添加到购物车按钮,所以如果你想购买两个相同的项目,你必须按两次添加到购物车。因此

$_SESSION['product'.$id] += 1;

而不是

$_SESSION['product'.$id] = $qty;

显然,为了跟踪颜色和数量,我需要使用多维数组来保存两者,但我无法弄清楚如何初始化它或设置值。任何帮助将不胜感激。对不起,如果我没有很好地解释我的问题,我现在大约17个小时没有睡觉,现在试图解决这个问题!

1 个答案:

答案 0 :(得分:0)

为什么不改变产品的关键字如下:

$_SESSION['product'.$i.'_'.$color] += $colorQty;

用于迭代使用

  

foreach

foreach ($_SESSION as $key => $value)
{
   //do something with $_SESSION[$key], which is product0_red, product0_green etc.
}
相关问题