Удаляет все одинаковые элементы из массива $_SESSION[] полтос на мобилу кто поможет
Вообщем ребят очень прошу помощи, сначала код:
Это код удаления позиции из корзины <?php $head = "no_header"; require_once('_inc/bd.php'); if (isset($_POST['process'])) {$process = $_POST['process'];} session_start(); //Показ корзины if ($process == "enter_cart") { ?><div id="cont"> <table cellpadding="2px" cellspacing="5px" border="0px"> <thead> <tr> <td align="center" width="400px">Наименование</td> <td align="center" width="150px">Цена</td> <td align="center" width="150px">Удалить</td> </tr> </thead> <tbody> <?php $i = 0; foreach ($_SESSION['cart']['tov'] as $n => $tovar[$n]) { if ($_POST['action'] == "delete_tovar") { //Удаление позиции СОБСТВЕННО ВОТ ЗДЕСЬ И ПРОБЛЕМА---)))) ВНИЗУ ВОПРОС!!!!--++_) if ($_SESSION['cart']['tov'][$i] == $_POST['tovar_delete']) { unset($_SESSION['cart']['tov'][$i]); unset($_SESSION['cart']['pr'][$i]); } } $tovar_v = $_SESSION['cart']['tov'][$i]; $result_products = mysql_query("SELECT `name` FROM `products` WHERE `id`='$tovar_v'", $db); $row_products = mysql_fetch_array($result_products); if (!empty($tovar_v)) { echo " <tr> <td align='left'> ".$row_products['name']."</td> <td align='right'>".$_SESSION['cart']['pr'][$i]." рублей</td> <td id='cart_delete' align='center'"; ?> onclick="javascript: tovar_delete('<?php echo $tovar_v; ?>', 'enter_cart', 'delete_tovar')" <?php echo ">Удалить</td> </tr> "; } $summa = $summa + $_SESSION['cart']['pr'][$i]; $i++; } $_SESSION['summa'] = $summa; ?> </tbody> <tfoot> <tr> <td colspan="3" align="center"><?php if ($_SESSION['summa'] == 0) {echo "Корзина пуста!";} ?></td> </tr> <tr> <td colspan="3" id="total_summa">Общая сумма: <?php echo $_SESSION['summa']; ?> рублей</td> </tr> </tfoot> </table> <center> <table cellpadding="0px" cellspacing="0px" border="0px" id="cart_buttons" width="160px" align="center"> <tr> <td id="zakaz"> </td> </tr> </table> </center> </div> <?php } ?> <script type="text/javascript" language="javascript"> $('#zakaz').click(function(){ //entering cart $('#content').fadeOut(0); $('#content').fadeIn(200); $.ajax({ url:'_page/index_zakaz.php', type:'POST', data:'page=index', dataType:'html', success:function(html){ $('#content').html(html); } }); }); //delete_tovar function tovar_delete(id_tovar, action, view){ $.ajax({ url:'cart_user.php', type:'POST', data:({tovar_delete:id_tovar, process:action, action:view}), dataType:'html', success:function(html){ $('#content').html(html); } }); }; //end_delete_tovar </script> Скрипт собственного производства сильно не пинайте, просто кто знает подскажите где ошибка!??? Буду Оооочень признателен. Вот короче если в списке товаров есть одинаковые товары, то при удалении одной позиции, он удаляет все одинаковые позиции. Что только я уже не пробывал, может просто туплю. Подскажите плиззззз где ошибка? Кто поможет полтос на мобилу пришлю (P.S. Которые поддерживает webmoney.) P.P.S. Можно посмотреть в реале taibai.ru добавьте несколько одинаковых товаров, а потом в корзине попробуйте удалить. |
Хм, а как нам узнать что из мебя представляет массив $_SESSION ?
Сделайте print_r($_SESSION) и покажите нам. Естественно наберите в корзину одинаковых позиций |
Выполнил
Цитата:
if (isset($_POST['tovar_select'])) {$_SESSION['cart']['tov'][] = $_POST['tovar_select'];} //выбранный товар if (isset($_POST['tovar_price'])) {$_SESSION['cart']['pr'][] = $_POST['tovar_price'];} //цена товара |
if ($_POST['action'] == "delete_tovar") { //Удаление позиции СОБСТВЕННО ВОТ ЗДЕСЬ И ПРОБЛЕМА---)))) ВНИЗУ ВОПРОС!!!!--++_) $zzz = array_search($_POST['tovar_delete'],$_SESSION['cart']['tov']) if ($zzz!==false) { unset($_SESSION['cart']['tov'][$zzz]); unset($_SESSION['cart']['pr'][$zzz]); } } Только вынесите этот блок кода за цикл(вверх) |
<?php $head = "no_header"; require_once('_inc/bd.php'); if (isset($_POST['process'])) {$process = $_POST['process'];} session_start(); //Показ корзины if ($process == "enter_cart") { ?><div id="cont"> <table cellpadding="2px" cellspacing="5px" border="0px"> <thead> <tr> <td align="center" width="400px">Наименование</td> <td align="center" width="150px">Цена</td> <td align="center" width="150px">Удалить</td> </tr> </thead> <tbody> <?php $i = 0; if ($_POST['action'] == "delete_tovar") { //Удаление позиции СОБСТВЕННО ВОТ ЗДЕСЬ И ПРОБЛЕМА---)))) ВНИЗУ ВОПРОС!!!!--++_) $zzz = array_search($_POST['tovar_delete'],$_SESSION['cart']['tov']); if ($zzz !== false) { unset($_SESSION['cart']['tov'][$zzz]); unset($_SESSION['cart']['pr'][$zzz]); } } echo $zzz; foreach ($_SESSION['cart']['tov'] as $n => $tovar[$n]) { /*if ($_POST['action'] == "delete_tovar") { if (($_SESSION['cart']['tov'][$i] == $_POST['tovar_delete'])) { unset($_SESSION['cart']['tov'][$i]); unset($_SESSION['cart']['pr'][$i]); } }*/ $tovar_v = $_SESSION['cart']['tov'][$i]; $result_products = mysql_query("SELECT `name` FROM `products` WHERE `id`='$tovar_v'", $db); $row_products = mysql_fetch_array($result_products); if (!empty($tovar_v)) { echo " <tr> <td align='left'> ".$row_products['name']."</td> <td align='right'>".$_SESSION['cart']['pr'][$i]." рублей</td> <td id='cart_delete' align='center'"; ?> onclick="javascript: tovar_delete('<?php echo $tovar_v; ?>', 'enter_cart', 'delete_tovar')" <?php echo ">Удалить</td> </tr> "; } $summa = $summa + $_SESSION['cart']['pr'][$i]; $i++; } $_SESSION['summa'] = $summa; ?> </tbody> <tfoot> <tr> <td colspan="3" align="center"><?php if ($_SESSION['summa'] == 0) {echo "Корзина пуста!";} ?></td> </tr> <tr> <td colspan="3" id="total_summa">Общая сумма: <?php echo $_SESSION['summa']; ?> рублей</td> </tr> </tfoot> </table> <center> <table cellpadding="0px" cellspacing="0px" border="0px" id="cart_buttons" width="160px" align="center"> <tr> <td id="zakaz"> </td> </tr> </table> </center> </div> <?php /*$tt = 0; while ($tt !== count($_SESSION['cart']['tov'])) { echo "tov = ".$_SESSION['cart']['tov'][$tt]." pr = ".$_SESSION['cart']['pr'][$tt]."<br />"; $tt++; }*/ print_r($_SESSION); } ?> <script type="text/javascript" language="javascript"> $('#zakaz').click(function(){ //entering cart $('#content').fadeOut(0); $('#content').fadeIn(200); $.ajax({ url:'_page/index_zakaz.php', type:'POST', data:'page=index', dataType:'html', success:function(html){ $('#content').html(html); } }); }); //delete_tovar function tovar_delete(id_tovar, action, view){ $.ajax({ url:'cart_user.php', type:'POST', data:({tovar_delete:id_tovar, process:action, action:view}), dataType:'html', success:function(html){ $('#content').html(html); } }); }; //end_delete_tovar </script> И такая конструкция не работает, и чтото непонятное написано по этой ссылке Мой скрипт работает только на половину, он удалять удаляет, только не могу счетчик "лимита удалений" пробывал и так и сяк, может ты попробуешь в эту сторону капнуть, есть идеи? |
Saimon7887,
Не понимаю зачем счетчик ? Удаляется то 1 товар ?? значит счетчик будет или 0 или 1. Просто не люблю вычитывать кучу кона не относящегося к тебе. Если надо от суммы отнять то... unset($_SESSION['cart']['tov'][$zzz]); $_SESSION['summa']-=$_SESSION['cart']['pr'][$zzz]; unset($_SESSION['cart']['pr'][$zzz]); Цитата:
|
Цитата:
|
Ребят, срочно присрочно нужно решение проблемы. Кто поможет реально в решении, посути тут просто где то мышь зарылась, просто не могу понять где, и уже не знаю что делать.
Сотку на трубу закину, помогите плииззз!!! Вариант DooMer`a не работает, если что! |
Всем спасибо если что-)))) Сам решил-)! Тему в топку
|
Часовой пояс GMT +3, время: 18:12. |