Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 04.01.2017, 21:05   #1
Евгений 86
 
Регистрация: 21.03.2016
Сообщений: 7
Репутация: 10
По умолчанию Корзина для интернет магазина

Добрый вечер! пишу корзину для ИМ на сессиях, возник вопрос как сделать асинхронное изменение кол-ва товара. Я хочу что бы работал + и - , и товар уменьшался или прибавлялся на единицу. Но у меня происходит одновременно уменьшение и прибавление кл-ва у все добавленных товарах.
я попробовал использовать switch case что бы определить минус или плюс нажат
Вобщем этот код не работает. Подскажите пожалуйста что нужно исправить.
это минус в разметке
Код HTML:
<a href="cart.php?action=minus">-</a>
это switch case

PHP код:
case 'minus':

    
update_minus_cart();

    echo 
'<script type="text/javascript">
window.location = "cart.php?action=oneclick"
</script>'
;
    
    break; 
это сама функция update_minus_cart()
Код:

function update_minus_cart()
{
	foreach ($_SESSION['cart'] as $id => $qty)
	{
		$rrr = $qty - 1;
	$_SESSION['cart'][$id] = $rrr;

}
}

Евгений 86 вне форума   Ответить с цитированием
Старый 04.01.2017, 21:18   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,983
Репутация: 2784

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от Евгений 86 Посмотреть сообщение
'<script type="text/javascript">
window.location = "cart.php?action=oneclick"
</script>';
Что за странный способ редиректа? Можно ж просто использовать header Location.

Вообще такое наверно удобнее с помощью ajax отправлять, без перезагрузки страницы.
Alex11223 вне форума   Ответить с цитированием
Старый 04.01.2017, 21:33   #3
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,132
Репутация: 985
По умолчанию

Цитата:
Сообщение от Евгений 86 Посмотреть сообщение
Но у меня происходит одновременно уменьшение и прибавление кл-ва у все добавленных товарах.
Ну так наверное ж нужно передать также и ID товара, у которого нужно изменить количество, а не только action, не?
Элементарно же.
Andkorol вне форума   Ответить с цитированием
Старый 04.01.2017, 22:09   #4
Евгений 86
 
Регистрация: 21.03.2016
Сообщений: 7
Репутация: 10
По умолчанию

Я написал с помощью аякса, но у меня вообще не выходит сделать изменение кол-ва товара. Получается абракадабра когда аяксу прихоит ответ.
У меня что получается на аяксе
когда я нажимаю на "-" и было например кол-во 4шт
скрипт отрабатывает и возвращает 3
затем я нажимаю еже раз "-" ничего не происходит также остается 3
а если нажму перезагрузить вобще возвращается обратное кл-во 4.
я долго мурыжился. Если сможете подсказать могу выложить код
там в принципе просто все
Евгений 86 вне форума   Ответить с цитированием
Старый 04.01.2017, 22:42   #5
Евгений 86
 
Регистрация: 21.03.2016
Сообщений: 7
Репутация: 10
По умолчанию

это в разметке
Код:

<li><p align="center" iid="'.$id.'" class="count-minus">-</p></li>

это обрабочтик
Код:

$('.count-minus').click (function() {
	
	var iid = $(this).attr("iid");
	
	$.ajax({
		type: "POST",
		url: "include/count-minus.php",
		data: "id="+iid,
		dataType: "html",
		cache: false,
		success: function(data) {
			$("#input-id"+iid).val(data);
			loadcart();
			
			var priceproduct = $("#tovar"+iid+" > p").attr("price");
			result_total = Number(priceproduct) * Number(data);
			
			$("#tovar"+iid+" > p").html(fun_group_price(result_total)+" руб." );
			$("#tovar"+iid+" > h5 > .span-count").html(data);
			itog_price();
		}
		});
	
});

а это файл count-plus.php где происходит перерасчет
Код:

<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
{
define('ххх', true);  
include("db_connect.php");
include("../functions/functions.php");
session_start();

$id = clear_string($_POST["id"]);
  
$new_count = $_SESSION['cart'][$id] - 1;

echo $new_count;    
}

Евгений 86 вне форума   Ответить с цитированием
Старый 04.01.2017, 22:53   #6
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,983
Репутация: 2784

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

http://www.programmersforum.ru/showt...73#post1656582
Alex11223 вне форума   Ответить с цитированием
Старый 05.01.2017, 11:53   #7
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,132
Репутация: 985
По умолчанию

Цитата:
Сообщение от Евгений 86 Посмотреть сообщение
когда я нажимаю на "-" и было например кол-во 4шт
скрипт отрабатывает и возвращает 3
затем я нажимаю еже раз "-" ничего не происходит также остается 3
а если нажму перезагрузить вобще возвращается обратное кл-во 4.
я долго мурыжился.
Не нужно «долго мурыжиться» – нужно просто включить мозг.
Для начала достаточно будет осознать, что операция изменения количества товаров в корзине – она нужна не только для того, чтоб просто поменять число на странице, но и само количество товаров в сессии нужно тоже изменить, сохранить результат изменения количества товаров в сессии.
А ты просто циферку меняешь на странице – а в сессии количество товаров остаётся прежним, без изменений.
Andkorol вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CMS для интернет магазина ssdm WordPress и другие CMS 20 05.01.2017 02:41
Cms для интернет магазина Pavel1234567 WordPress и другие CMS 19 31.07.2016 15:45
Движок для интернет-магазина zhiharka WordPress и другие CMS 3 01.06.2016 20:32
Движок для интернет-магазина Batmydeath WordPress и другие CMS 1 29.09.2014 13:55
Функции корзины для интернет-магазина Фибер Оптик PHP 2 02.03.2012 12:43




06:00.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru