0

我之前做过购物车,当时每件商品都没有任何特殊属性,如颜色或尺寸,但我当前的项目有一个颜色属性。过去,我使用以产品 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 个小时不睡觉,现在试图解决这个问题!

4

1 回答 1

0

为什么不将产品的密钥更改为这样的东西:

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

等等

用于迭代使用

前锋

foreach ($_SESSION as $key => $value)
{
   //do something with $_SESSION[$key], which is product0_red, product0_green etc.
}
于 2013-05-07T07:48:22.713 回答