可能重复:
Php Shopping cart - Size and length for each quantity of a type of product
您好我以前在这里发布过这个问题和一些回复,但仍然无法弄清楚我的剧本搞砸了什么....
我在页面order.php上有一个购物车。它是一家公司的零售部门,以便商店可以从该在线部分购买服装。所以有多件连衣裙,人们可以选择任意数量的连衣裙。此外,在购物脚本上有一个地方可以改变连衣裙的大小和长度。
目前,当您订购连衣裙时,您可以选择单个尺码和单个长度 例如:如果您订购4件衣服A的数量,您只能选择一件衣服A的尺寸和长度。
现在我想要实现的是当你订购4件服装A时,你应该能够选择每件服装A的长度和尺码A意味着4个长度和4个尺码。也许这听起来很奇怪但是我非常迫切需要的东西
以下是代码:
会话初始化
session_start();
//Create 'cart' if it doesn't already exist
if (!isset($_SESSION['SHOPPING_CART'])){ $_SESSION['SHOPPING_CART'] = array(); }
//Add an item only if we have the threee required pices of information: name, price, qty
if (isset($_GET['add']) && isset($_GET['price']) && isset($_GET['qty']) && isset($_GET['size'])&& isset($_GET['length'])&& isset($_GET['code']) ){
//Adding an Item
//Store it in a Array
$ITEM = array(
//Item name
'name' => $_GET['add'],
//Item Price
'price' => $_GET['price'],
//Qty wanted of item
'qty' => $_GET['qty'],
'size' => array_fill(0, $_GET['qty'], $_GET['size']),
'length' => array_fill(0, $_GET['qty'], $_GET['length']),
'code' => $_GET['code']
);
应该更新并存储数量,大小和长度值的部分。
foreach ($_POST['items_qty'] as $itemID => $qty) {
//If the Qty is "0" remove it from the cart
if ($qty == 0) {
//Remove it from the cart
unset($_SESSION['SHOPPING_CART'][$itemID]);
}
else if($qty >= 1) {
//Update to the new Qty
$_SESSION['SHOPPING_CART'][$itemID]['qty'] = $qty;
}
foreach ($_POST['items_size'] as $itemID => $size) {
//If the Qty is "0" remove it from the cart
if($size >= 1) {
//Update to the new Qty
$_SESSION['SHOPPING_CART'][$itemID]['size'] = $size;
}
}
foreach ($_POST['items_length'] as $itemID => $length) {
//If the Qty is "0" remove it from the cart
//Update to the new Qty
$_SESSION['SHOPPING_CART'][$itemID]['length'] = $length;
}
第三个应该显示值的部分:
<
?php
//Print all the items in the shopping cart
foreach ($_SESSION['SHOPPING_CART'] as $itemNumber => $item) {
?>
<tr align="center" id="item<?php echo $itemNumber; ?>">
<td><a href="?remove=<?php echo $itemNumber; ?>">remove</a></td>
<td><?php echo $item['name']; ?></td>
<td><?php echo $item['price']; ?></td>
<td><input name="items_qty[<?php echo $itemNumber; ?>]" type="text" id="item<?php echo $itemNumber; ?>_qty" value="<?php echo $item['qty']; ?>" size="2" maxlength="3" /></td>
<td><?php echo $item['qty'] * $item['price']; ?></td>
<td><select name="items_size[<?php echo $itemNumber; ?>]" value="<?php echo $item['size']; ?>" type="text" id="item<?php echo $itemNumber; ?>_size" >
<option selected="selected" value="<?php echo $item['size']; ?>"><?php echo $item['size']; ?></option>
<option value="2">2</option>
<option value="4">4</option>
<option value="6">6</option>
<option value="8">8</option>
<option value="10">10</option>
<option value="12">12</option>
<option value="14">14</option>
<option value="16">16</option>
<option value="18">18</option>
<option value="20">20</option>
<option value="22">22</option>
<option value="24">24</option>
<option value="26">26</option>
<option value="28">28</option>
<option value="30">30</option>
</select>
<?php
foreach ($_SESSION['SHOPPING_CART'] as $item_id => $item)
{
echo '<p>Name: ' . $item['name'] . ' for ' . $item['price'] . '$</p>';
foreach($item['size'] as $j => $size)
{
echo '<p>#' . $j . ': size ' . $size . ', length ' . $item['length'][$j] . '</p>';
}
}
?>
<?php
$order=strtotime("now");
if($cntry == "USA" || $cntry =="United States Of America" || $cntry == "America")
{
$price=100;
}
else
{
$price=200;
}
?>
<td><select name="items_length[<?php echo $itemNumber; ?>]" type="text" select="<?php echo $item['length']; ?>" id="item<?php echo $itemNumber; ?>_length" >
<option selected="selected" value="<?php echo $item['length']; ?>"><?php echo $item['length']; ?></option>
<option value="46">46</option>
<option value="48">48</option>
<option value="50">50</option>
</select>
</tr>
<?php
}
?>
下面
foreach ($_SESSION['SHOPPING_CART'] as $item_id => $item)
{
echo '<p>Name: ' . $item['name'] . ' for ' . $item['price'] . '$</p>';
foreach($item['size'] as $j => $size)
{
echo '<p>#' . $j . ': size ' . $size . ', length ' . $item['length'][$j] . '</p>';
}
}
这部分是由论坛成员之一向我推荐的。
将以下行添加到项目数组(第1部分)
之后'size' => array_fill(0, $_GET['qty'], $_GET['size']),
'length' => array_fill(0, $_GET['qty'], $_GET['length']),
当我更改数量后按更新按钮它没有更新..它保持在一个...
现在我真的不知道或不知道在哪里添加什么代码。我很迷惑。请帮帮我
答案 0 :(得分:1)
从我在你的问题中看到的,你刚刚发布了你所拥有的整个代码,并要求人们进行调试。
我理解你的挫败感,我曾多次去过那里,但是你没有用复制粘贴来帮助你。我试图通过代码,没有缩进,有无数的标题重定向,基本上很难调试它甚至理解发生了什么。我甚至尝试编辑它以使其更具可读性,但在10分钟后我放弃了。
将您的代码拆分为较小的块,您将自己找到解决方案
您的问题:您可以做的是做一些服务器端检查或客户端检查
客户检查:
服务器检查:
您采取的方法取决于您。
PS:请请考虑将您的数据库访问权限更改为mysqli
或PDO
。 mysql
已被弃用。这个网站上有很多关于如何这样做的资源。