我有一个名为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
按钮时选择的特定商品的数量
我不知道怎么回事呢?
答案 0 :(得分: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();
答案 1 :(得分:1)
对于提交的脚本,您希望遍历cart_array会话中的每个项目并按该ID查找,然后更改该项目的数量。
foreach($_SESSION['cart_array'] as $index => $item){
if($item['ID'] == $_POST['ID']){
$_SESSION['cart_array'][$index]['quantity'] = $_POST['quantity'];
}
}
答案 2 :(得分: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