2013-10-10 53 views
0

我再次提问 这个更具体。无法从购物车删除商品

 $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

经由在形式的隐藏的输入类型来...我创建的形式与删除按钮,并通过隐藏输出字段我经过,我想从除去项的索引购物车和实现这个code.But它不工作.......

 <?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']); 
    } 
} 

    ?> 
+0

您可以在清除操作之前和之后执行print_r()'$ _SESSION ['cart_array']'操作? – Raptor

+0

你为什么要在'unset'时对''__ SESSION ['cart_array']'进行排序呢? – 2013-10-10 06:29:45

+0

不''取消整个$ _SESSION ['cart_array']',只是它的一个元素。不过,关于“sort()”需求的问题依然存在。 _(编辑:哎呀,我只看着'else'部分,我猜他是想删除'then'中的一个元素,只是错过了...)_ – geomagas

回答

0

你的HTML被打破

变化

<input type="hidden" name="index_to_remove" value="'.$i.'"</form>'; 

<input type="hidden" name="index_to_remove" value='$i'></form>'; 
+0

我对此进行了排序但仍未删除项目 – user2855638

+0

你有任何错误,改变value =“'。$ i。'''to value ='$ i' – Dinesh

+0

没有错误,但是物品仍然在购物车中,甚至是回声计数($ _ SESSION ['cart_array']); – user2855638

0

替换该行

if(isset($_POST['index_to_remove']) && $_POST['index_to_remove']=!"") 

if(isset($_POST['index_to_remove']) && $_POST['index_to_remove']!="") 

,因为它改变了你的index_to_remove值从后值设置为 “1” 代替。

此外您的html标记未正确关闭。

+0

我做到了这一点,但仍然没有成功.... – user2855638

+0

有没有你得到的任何错误? –

+0

不,我没有得到任何错误 – user2855638

0

的问题是在这里:

if(isset($_POST['index_to_remove']) && $_POST['index_to_remove']=!"") 

在你=第二部分“”

这个计算结果为$ VAR等于不“”,因此总是返回真(并设置$ _ POST [! 'index_to_remove']为true,然后在你的if中使用)。我相信你正在寻找!=或!==这意味着不等于。

相关问题