我尝试使用size
更改产品中的<option>
并使用array_splice()
但不起作用,我也会爆炸size
值,我想要客户选择其他大小来更改会话购物车数组但是给我这个错误
(!)警告:array_splice()期望参数2为long,第89行的E:\ wamp \ www \ MyOnlineStore \ cart.php中给出的数组
这样:
array_splice($_SESSION["cart_array"], array(array("item_id" => $item_to_adjust_size, "size" => $size)));
脚本
// Section 3a (if user chooses to adjust item SIZE)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (isset($_POST['item_to_adjust_size'])) {
// execute some code
echo "merge";
$item_to_adjust_size = $_POST['item_to_adjust_size'];
$size = $_POST['size'];
foreach ($_SESSION["cart_array"] as $my_ArraySize) {
while (list($key, $value) = each($my_ArraySize)) {
if ($key == "item_id" && $value == $item_to_adjust_size) {
// That item is in cart already so let's adjust its quantity using array_splice()
array_splice($_SESSION["cart_array"], array(array("item_id" => $item_to_adjust_size, "size" => $size)));
} // close if condition
} // close while loop
} // close foreach loop
}
更改大小数组的表单
$myArraySize = explode(' ', $size);
$cartOutput .= '<td><form action="cart.php" method="post"><select name="size">';
foreach($myArraySize as $my_ArraySize)
{
$cartOutput .= '<option value="'.$my_ArraySize.'">'.$my_ArraySize.'</option>';
}
$cartOutput .='</select><input name="item_to_adjust_size" type="hidden" value="' . $item_id . '" />
<input name="adjustBtn' . $item_id . '" type="submit" value="changesizes" />';
$cartOutput .= '</form></td>';
我不知道如何解决这个问题,抱歉,我是脚本编写新手。
答案 0 :(得分:0)
它告诉你完全错误是什么 - 第二个参数需要是int
,而不是数组。阅读this。你可能意味着:
array_splice(array(array("item_id" => $item_to_adjust_size, "size" => $size)),$_SESSION["cart_array"]);
第二个参数是将删除所有内容的偏移量。这也没有多大意义,因为你只有一个项目的数组(包含一个数组),所以你必须考虑你在这里尝试做什么。您也不能使用此行中的任何区域进行保存 - 它完全没用。您还需要将某些内容保存到变量或更改现有数组。
您可能需要:
$my_ArraySize["size"] = $_SESSION["cart_array"]
或类似的东西,但不确定。