首先,这是我的第一个PHP存储,所以如果我看起来有点傻,我道歉。
缩写:如何将一组值传递给PHP购物车的$_SESSION
变量,而不为页面上的每个项目使用单独的表单?
情况是这样的。我正在尝试创建一个商店。每个页面上的产品都将从MySQL数据库中调用,并按成本进行组织。这一切都很顺利。
我遇到的问题涉及项目选项。其中一些物品,如棒球帽、T恤和其他各种商品,将有多种尺寸/颜色。我现在的组织方式是,MySQL表中与标准匹配的每个条目都输出到自己的形式中,如果适用,还可以选择大小和颜色。我遇到的问题是,虽然我显然可以将它们发布到另一个页面,但我似乎无法将它们分配给变量。
我很想完全取消这些表格,并使用这样的超链接:添加到购物车但我不确定这是否是一个选项,广告中我需要传递一些物品的尺寸和颜色值。
我知道以前也经常这样做,但我似乎无法让谷歌来帮助我。如有任何建议/提示/窍门,我们将不胜感激。
以下是我目前的代码,使用我刚开始时认为很好的多表单方法:
<?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);
?>
我想你可以将表单打开和关闭移动到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);
?>
如果这不是你的意思,请告诉我!
有几种方法可以使用JavaScript来实现这一点。您可以使用JavaScript使用附加到添加到购物车按钮/链接的onclick事件对php脚本进行ajax调用,也可以在选择选项时使用JavaScript将参数添加到添加到车链接。
这有道理吗?
PS不要那样在p标签上使用id。您希望保持id值的唯一性。