将多个值传递给PHP购物车

时间:2012-09-05 16:20:18

标签: php mysql post store cart

首先,这是我的第一个PHP商店,所以如果我看起来有点愚蠢,我道歉。

简短表单:如何为PHP购物车的$_SESSION变量传递一组值,而不为页面上的每个项目使用单独的表单?

这是情况。我正在尝试创建一个商店。每个页面上的产品将从MySQL数据库中调用,并按成本进行组织。这一切都很完美。

我遇到的问题涉及项目选项。其中一些物品,如球帽,T恤和其他各种商品,将有多种尺寸/颜色。我现在这样组织的方式是MySQL表中符合条件的每个条目都输出到它自己的形式,如果适用,还有大小和颜色选项。我遇到的问题是,虽然我可以将这些发布到另一个页面,但我似乎无法将它们分配给变量。

我想完全取消表单,并使用这样的超链接:     添加到购物车 但我不确定这是一个选项,广告我需要传递一些项目的大小和颜色的值。

我知道这已经做过,而且经常,但我似乎无法让Google帮助我。任何建议/提示/技巧将不胜感激。

以下是我当前的代码,使用我认为在我开始时会很好的多种形式方法:

<?php
while($row = mysql_fetch_array($data)){
  echo "<form method='post' action='addcart.php'>";
  echo "<tr><td><img width='100' width='100' src='itemImages/" . $row['itemIMG'] . "'/></td>
  <td>" . $row['itemNAME'] . "</td>
  <td><p id='description'>" . $row['itemDESC'] . "</p></td> <td>";
  //Color dropdown population happens here
  if($row["itemCOL1"] != ' '){
    echo "<select name=colors>";
    $finished = 'false';
    $i = '0';
    $colrow = mysql_fetch_array($coldata);
    while($finished != 'true'){
       if($colrow[$i] != ' '){  
         echo "<option value=" . $colrow[$i] . ">" . $colrow[$i] . "</option>";
         $i++;
    } else {
      echo "</select>";
      $finished='true';
    }
   }
  }
//Size option dropdown handled here
if($row['itemHSIZ'] != "N"){
  echo "<select name=prodSizes>";
  echo "<option value=X-Small>X-Small  </option>";
  //Sizes omitted for brevity
  echo "</select>";
  }
echo "<input type='hidden' name='prodName' value='" . $row['itemNAME'] . "' />";
echo "<input type='submit' name='submit' value='Submit' /></form>";
};
//...and above here.
mysql_close($con);
?>

2 个答案:

答案 0 :(得分:1)

我想你可以将表格打开并在你的while循环外面形成,让所有的项目都在一个表格中,因此有一个帖子:

<?php
  echo "<form method='post' action='addcart.php'>";
while($row = mysql_fetch_array($data)){
  echo "<tr><td><img width='100' width='100' src='itemImages/" . $row['itemIMG'] . "'/></td>
  <td>" . $row['itemNAME'] . "</td>
  <td><p id='description'>" . $row['itemDESC'] . "</p></td> <td>";
  //Color dropdown population happens here
  if($row["itemCOL1"] != ' '){
    echo "<select name=colors>";
    $finished = 'false';
    $i = '0';
    $colrow = mysql_fetch_array($coldata);
    while($finished != 'true'){
       if($colrow[$i] != ' '){  
         echo "<option value=" . $colrow[$i] . ">" . $colrow[$i] . "</option>";
         $i++;
    } else {
      echo "</select>";
      $finished='true';
    }
   }
  }
//Size option dropdown handled here
if($row['itemHSIZ'] != "N"){
  echo "<select name=prodSizes>";
  echo "<option value=X-Small>X-Small  </option>";
  //Sizes omitted for brevity
  echo "</select>";
  }
echo "<input type='hidden' name='prodName' value='" . $row['itemNAME'] . "' />";
};
echo "<input type='submit' name='submit' value='Submit' /></form>";
//...and above here.
mysql_close($con);
?>

请告诉我这是不是你的意思!

答案 1 :(得分:0)

使用JavaScript可以通过几种方式解决这个问题。您可以使用JavaScript通过附加到“添加到购物车”按钮/链接的onclick事件对php脚本进行ajax调用,或者在选择选项时使用JavaScript将参数添加到添加到购物车链接。

这有意义吗?

PS不要像那样在p标签上使用id。您希望保持id值唯一。