【发布时间】:2013-10-17 18:51:10
【问题描述】:
我又问了一次 这更具体。
$cartOutput.='<form method="post" action="cart.php">
<input type="submit"name="deletebtn'.$item_id.'" value="remove"/>
<input type="hidden" name="index_to_remove" value="'.$i.'"</form>';
在这个 index_to_remove 来自表单中的隐藏输入类型...我创建了一个带有删除按钮的表单,并通过一个隐藏的输出字段我传递了我想从购物车中删除的项目的索引并实现了这个代码。但它不起作用.......
<?php
/////////////////////////////////////////////////////////
// if user wants to remove an item from cart
////////////////////////////////////////////////////////
if(isset($_POST['index_to_remove']) && $_POST['index_to_remove']=!"")
{
//access the array and rum code to remove that array index
$key_to_remove=$_POST['index_to_remove'];
if(count($_SESSION['cart_array'])<=1)
{
unset($_SESSION['cart_array']);
sort($_SESSION['cart_array']);
}
else
{
unset($_SESSION["cart_array"][$key_to_remove]);
sort($_SESSION['cart_array']);
echo count($_SESSION['cart_array']);
}
}
?>
【问题讨论】:
-
你能在删除操作之前和之后
print_r()$_SESSION['cart_array']吗? -
你为什么要
sort$_SESSION['cart_array'],而你只有unset呢? -
不是
unset整个$_SESSION['cart_array'],只是其中的一个元素。尽管如此,关于需要sort()的问题仍然存在。 (编辑:哎呀,我只看else部分,我猜他也打算删除then中的一个元素,只是错过了......)