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 是通过表单中的隐藏输入类型来的......我创建了一个带有删除按钮的表单,并通过一个隐藏的输出字段我传递了我想从购物车中删除的项目的索引并实现了这个代码。但是它不工作.......

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

    ?>
4

3 回答 3

0

问题在这里:

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

在第二部分你有 =!""

这评估为 $var 不等于 "" 并因此返回始终为真(并将 $_POST['index_to_remove'] 设置为真,然后在您的 if 中使用)。我相信您正在寻找 != 或 !== 这意味着不等于。

于 2013-10-10T06:32:57.013 回答
0

你的html坏了

改变

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

<input type="hidden" name="index_to_remove" value='$i'></form>';
于 2013-10-10T06:29:25.630 回答
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 标签也未正确关闭。

于 2013-10-10T06:29:54.533 回答