0

我有一个名为的会话Cart_array,它以下列方式保存一个多维数组:

$_SESSION['Cart_array'] = array(
                1 => array(
                    "ID" => $pid,
                    "QTY" => 1
                )
            );

这就是将商品添加到购物车会话的方式。pid从另一种形式获得

if (isset($_POST['pid'])) {
        $pid    = $_POST['pid'];
        if (!isset($_SESSION['Cart_array']) || count($_SESSION['Cart_array']) < 1) { //check if cart session is not set or empty
            $_SESSION['Cart_array'] = array(
                1 => array(
                    "ID" => $pid,
                    "QTY" => 1
                )
            );
        } else {
                array_push($_SESSION['Cart_array'], array(
                    "ID" => $pid,
                    "QTY" => 1
                ));

        } //end else
    } //end if

用户在一个函数中有一个包含以下内容的表单:

     <?php foreach ($_SESSION['Cart_array'] as $eachItem) {
            $itemID = $eachItem['ID'];
            $itemQty = $eachItem['QTY']; >?

        <input class="qty" name="quantity" type="number" value="<?php echo $itemQty;?>" />
        <input type="submit" name="qtyChange<?php echo $itemID;?>" value="Change Qty" />
        <input name="qtyOfItem" type="hidden" value="<?php echo $itemID?>"/> 
}

此表单将遍历Cart_array并显示购物车中每件商品的数量。我希望用户能够在单击Change Qty按钮时更改购物车中他们选择的特定商品的数量我不知道该怎么做?

4

3 回答 3

1

你可以像这样编辑数组

你的阵列

$list = array([0]=>
                   array(
                         [ID]=>'XYZ' 
                         [QTY]=>'1'
                         )
             ); 


    my_function()
   {
    $list=$_SESSION['Cart_array']; 
    global $list;
    $list[0]['QTY'] = '2'; //or this 2 value can be taken from user using jquery 
    }

my_function();
于 2013-10-20T03:53:23.077 回答
1

对于此提交的脚本,您希望遍历 cart_array 会话中的每个项目并通过该 ID 找到它,然后更改该项目的数量。

 foreach($_SESSION['cart_array'] as $index => $item){
   if($item['ID'] == $_POST['ID']){
     $_SESSION['cart_array'][$index]['quantity'] = $_POST['quantity'];
  }
 }
于 2013-10-20T03:57:03.047 回答
1

只需像这样从用户那里传递您的数量值

<?php
$_SESSION['Cart_array'] = array(
                1 => array(
                    "ID" => $pid,
                    "QTY" => 1
                )
            );

$_SESSION['Cart_array'][1]['QTY']=30;//Relaces the quantity from 1 to 30
于 2013-10-20T03:57:50.210 回答