Удаляет все одинаковые элементы из массива $_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, время: 22:49. |