可能重复:
Php 购物车 - 每种产品数量的尺寸和长度
嗨,我以前在这里发布了这个问题和一些回复,但仍然无法弄清楚是什么弄乱了我的脚本......
我在 order.php 页面上有一个购物车。它是一家公司的零售部门,以便商店可以从该在线部门购买礼服。所以有多种裙子,人们可以选择任意数量的裙子。此外,在该购物脚本上,还有一个地方可以更改衣服的尺寸和长度。
目前,当您订购一件连衣裙时,您可以为每个订单选择单一尺寸和单一长度 例如:如果您订购 4 件连衣裙 A,您只能为该连衣裙 A 选择一个尺寸和长度。
现在我要实现的是当您订购 4 件连衣裙 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']),
当我在更改数量后按下更新按钮时它不会更新..它保持在一个...
现在我真的不知道或不明白在哪里添加什么代码。我很困惑。请帮我