2013-10-10 245 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中使用)。我相信你正在尋找!=或!==這意味着不等於。