phpdragon Posted February 1, 2009 Share Posted February 1, 2009 Hi I would like to know how to delete items from this cart if $itemqty is set to 0, at present it modifies the cart item quantities by entering a number in a form and hitting order to update this cart, I would like it to delete the item from the cart if the quantity is set to 0. Any help appreciated tku. here is my code for creating the cart <?php $basket = $_POST['basket']; $itemprice = $_POST['price']; $id = $_POST['id']; $itemqty = $_POST['quantity']; if (($basket!="") && (!empty($_POST['submit']))){ if (session_is_registered("ses_basket_items")){ $basket_position_counter=0; $double=0; if ($ses_basket_items>0){ foreach ($ses_basket_name as $basket_item){ if ($basket_item==$basket){ $double=1; $basket_position=$basket_position_counter; } $basket_position_counter++; } } if ($double==1){ $ses_basket_amount[$basket_position]=$itemqty; $newprice=$itemprice*$itemqty; $ses_basket_price[$basket_position]=$newprice; }else{ $ses_basket_name[]=$basket; $ses_basket_amount[]=$itemqty; $ses_basket_price[]=$itemprice; $ses_basket_id[]=$id; $ses_basket_items++; } }else{ $ses_basket_items=1; $ses_basket_name[0]=$basket; $ses_basket_amount[0]=$itemqty; $ses_basket_price[0]=$itemprice; $ses_basket_id[0]=$id; session_register("ses_basket_items"); session_register("ses_basket_name"); session_register("ses_basket_amount"); session_register("ses_basket_price"); session_register("ses_basket_id"); } } if ($ses_basket_items>0){ echo "<table cellpadding='0' cellspacing='0' border='0' width='230'><tr><td class='carthead'>ITEM</td><td align='center' class='carthead'>QTY</td><td class='carthead' align='right'>TOTALS </td></tr>"; for ($basket_counter=0;$basket_counter<$ses_basket_items;$basket_counter++){ $price=sprintf("%01.2f",$ses_basket_price[$basket_counter]); $quantity=$ses_basket_amount[$basket_counter]; $name=$ses_basket_name[$basket_counter]; echo "<tr><td width='130px' align='left' class='cart'>$name</td><td width='50px' align='center' class='cart'>$quantity</td><td width='50px' class='cart' align='right'>\$$price </td></tr>"; } $totalprice=sprintf("%01.2f",array_sum($ses_basket_price)); $totalitems=array_sum($ses_basket_amount); echo "<tr><td align='left' class='cartbot'>CURRENT TOTALS:</td><td align='center' class='cartbot'>$totalitems</td><td align='right' class='cartbot'>\$$totalprice </td></tr></table>"; } else { $ses_basket_items=0; unset($ses_basket_name); unset($ses_basket_amount); unset($ses_basket_price); unset($ses_basket_id); } ?> Link to comment https://forums.phpfreaks.com/topic/143374-solved-how-to-delete-items-from-this-cart/ Share on other sites More sharing options...
phpdragon Posted February 1, 2009 Author Share Posted February 1, 2009 For those who want to know here is the code // Delete Item when set to 0 if ($itemqty == "0") { array_splice ($ses_basket_name, $basket_position, 1); array_splice ($ses_basket_amount, $basket_position, 1); array_splice ($ses_basket_price, $basket_position, 1); array_splice ($ses_basket_id, $basket_position, 1); $ses_basket_items--; } and here is the code in the page, placement is important <?php $basket = $_POST['basket']; $itemprice = $_POST['price']; $id = $_POST['id']; $sub = $_POST['submit']; $itemqty = $_POST['quantity']; if (($basket!="") && (!empty($_POST['submit']))){ if (session_is_registered("ses_basket_items")){ $basket_position_counter=0; $double=0; if ($ses_basket_items>0){ foreach ($ses_basket_name as $basket_item){ if ($basket_item==$basket){ $double=1; $basket_position=$basket_position_counter; } $basket_position_counter++; } } if ($double==1){ $ses_basket_amount[$basket_position]=$itemqty; $newprice=$itemprice*$itemqty; $ses_basket_price[$basket_position]=$newprice; }else{ $ses_basket_name[]=$basket; $ses_basket_amount[]=$itemqty; $ses_basket_price[]=$itemprice; $ses_basket_id[]=$id; $ses_basket_items++; } }else{ // Add new item to cart $ses_basket_items=1; $ses_basket_name[0]=$basket; $ses_basket_amount[0]=$itemqty; $ses_basket_price[0]=$itemprice; $ses_basket_id[0]=$id; session_register("ses_basket_items"); session_register("ses_basket_name"); session_register("ses_basket_amount"); session_register("ses_basket_price"); session_register("ses_basket_id"); } // Delete Item when set to 0 if ($itemqty == "0") { array_splice ($ses_basket_name, $basket_position, 1); array_splice ($ses_basket_amount, $basket_position, 1); array_splice ($ses_basket_price, $basket_position, 1); array_splice ($ses_basket_id, $basket_position, 1); $ses_basket_items--; } } // View Current Cart Status if ($ses_basket_items>0){ echo "<table cellpadding='0' cellspacing='0' border='0' width='230'><tr><td class='carthead'>ITEM</td><td align='center' class='carthead'>QTY</td><td class='carthead' align='right'>TOTALS </td></tr>"; for ($basket_counter=0;$basket_counter<$ses_basket_items;$basket_counter++){ $price=sprintf("%01.2f",$ses_basket_price[$basket_counter]); $quantity=$ses_basket_amount[$basket_counter]; $name=$ses_basket_name[$basket_counter]; echo "<tr><td width='130px' align='left' class='cart'>$name</td><td width='50px' align='center' class='cart'>$quantity</td><td width='50px' class='cart' align='right'>\$$price </td></tr>"; } $totalprice=sprintf("%01.2f",array_sum($ses_basket_price)); $totalitems=array_sum($ses_basket_amount); echo "<tr><td align='left' class='cartbot'>CURRENT TOTALS:</td><td align='center' class='cartbot'>$totalitems</td><td align='right' class='cartbot'>\$$totalprice </td></tr></table>"; } else { $ses_basket_items=0; unset($ses_basket_name); unset($ses_basket_amount); unset($ses_basket_price); unset($ses_basket_id); echo "<div class='cartbot' align='center'>You have 0 item(s) $sub in your cart.</div>"; } ?> to use it just include this where you want the code seen on your page, i also put that in a <div> tag for ease of use. Then set up a form sending the top 4 variables to it and your done. Link to comment https://forums.phpfreaks.com/topic/143374-solved-how-to-delete-items-from-this-cart/#findComment-752075 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.