VladokZzz
25.06.2015 - 15:25
Добрый день!
Впервые обращаюсь с просьбой, прошу сориентировать.
Имеется кукис cart, в который я поместил следующие данные:
223:М:4,1124:L:1,15::2
Расшифровываю - здесь получается 3 товара
id 223 с размером М 4шт.
id 1124 с размером L 1шт.
id 15 без размера 2шт.
Эти данные попадают в корзину, где отображаются в табличном виде товары в корзине.
Я пытаюсь сделать редактирование кол-ва товаров в корзине. Например, хочу у второго товара сделать 2 шт, а не 1.
Следовательно при нажатии + напротив этого товара подгружаю кукис со всеми данными, разделяя товары запятой
$arr = explode(',', $_COOKIE['cart']);
Далее стопор, как выдрать у выбранного id(1124) последний параметр(кол-во)? И самое интересное, записать ему новое значение?
После этого обновляется страница и посетитель видит в таблице измененное кол-во второго товара.
Быть может все гениальное просто, но... увы мозг сбоит.
Спасибо за внимание!
bestxp
25.06.2015 - 15:32
используй сессии как минимум, но опять же ни за сессии ни за кукисы тебя пользователи магазина любить не будут,
составив заказ на работе он не сможет его оплатить дома, так как заказа то и нету, а как же будет решаться проблема когда заказано больше товара чем есть например?
Цитата (bestxp @ 25.06.2015 - 15:32) |
используй сессии как минимум, но опять же ни за сессии ни за кукисы тебя пользователи магазина любить не будут,
составив заказ на работе он не сможет его оплатить дома, так как заказа то и нету, а как же будет решаться проблема когда заказано больше товара чем есть например? |
С этим проблем не возникает.
Можно и без сессий. Вопрос стоит в том как правильно отбирать данные с этого массива, менять кол-во и записывать обратно в куки
VladokZzz
25.06.2015 - 21:15
Цитата (Guest @ 25.06.2015 - 17:14) |
Цитата (bestxp @ 25.06.2015 - 15:32) | используй сессии как минимум, но опять же ни за сессии ни за кукисы тебя пользователи магазина любить не будут,
составив заказ на работе он не сможет его оплатить дома, так как заказа то и нету, а как же будет решаться проблема когда заказано больше товара чем есть например? |
С этим проблем не возникает. Можно и без сессий. Вопрос стоит в том как правильно отбирать данные с этого массива, менять кол-во и записывать обратно в куки
|
Точно подмечено!
Надо самы выборку и замену данных в куки наладить
Valick
25.06.2015 - 21:21
Цитата (VladokZzz @ 25.06.2015 - 20:15) |
Надо самы выборку и замену данных в куки наладить |
вы совсем не рядом
корзины покупателей - это должна быть таблица в БД на сервере.
_____________
Стимулятор ~yoomoney - 41001303250491
VladokZzz
25.06.2015 - 21:30
Цитата (Valick @ 25.06.2015 - 17:21) |
Цитата (VladokZzz @ 25.06.2015 - 20:15) | Надо самы выборку и замену данных в куки наладить |
вы совсем не рядом корзины покупателей - это должна быть таблица в БД на сервере.
|
А я с сессиями работать не умею. Вот и сделал на кукисах.
VladokZzz
25.06.2015 - 22:23
Удалось написать выборку для каждого товара из кукиса (в куках 3 товара)
$arr = explode(',', $_COOKIE['cart']);
$where_in = array();
foreach($arr as $item)
{
$where_in[] = (int)$item;
}
$c=count($where_in);
for($i=0;$i<$c;$i++)
{
for($ii=0; $itemid[0] != $irow[id]; $ii++)
{
$itemid = explode(':', $arr[$ii]);
if($itemid[0] == $irow[id]) echo $itemid[0].'('.$itemid[2].' шт.)';
}
}
Выводится 3 товара
id (шт.)
id (шт.)
id (шт.)
Теперь осталось понять как заменить инфу в куках, в которых содержится следующая инфа
223:М:4,1124:L:1,15::2 на 223:М:4,1124:L:2,15::2 ?
Тобишь в arr[1] заменить последнюю цифру 1 на 2 (вместо 1124:L:1 сделать 1124:L:2) и собрать всю строку с товарами
sergeiss
25.06.2015 - 22:46
Не извращайся и используй формат JSON. Его легко кодировать-декодировать как в ПХП, так и в JS.
Вот только про кукисы забудь, как о страшном сне
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Для корзины они не годятся. Только если чисто попрактиковаться.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
VladokZzz
26.06.2015 - 00:01
Цитата (sergeiss @ 25.06.2015 - 18:46) |
Не извращайся и используй формат JSON. Его легко кодировать-декодировать как в ПХП, так и в JS.
Вот только про кукисы забудь, как о страшном сне Для корзины они не годятся. Только если чисто попрактиковаться. |
А чем плохо? )
В общем разобрался сам. Поломал голову пару тройку часов.
$arr = explode(',', $_COOKIE['cart']);
$where_in = array();
foreach($arr as $item)
{
$where_in[] = (int)$item;
}
$c=count($where_in);
for($ii=0; $itemid[0] != $irow[id]; $ii++)
{
$itemid = explode(':', $arr[$ii]);
if($itemid[0] == $irow[id] AND $_GET[quant] == $irow[id])
{
$f = $itemid[0].':'.$itemid[1].':'.$itemid[2];
if(isset($_GET[up])) $q = $itemid[2]+1;
elseif(isset($_GET[down]) AND $itemid[2]>1) $q = $itemid[2]-1;
elseif(isset($_GET[down]) AND $itemid[2]<2) $q = 1;
$f2 = $itemid[0].':'.$itemid[1].':'.$q;
$main = str_replace($f,$f2,$_COOKIE['cart']);
}
}
sergeiss
26.06.2015 - 01:31
VladokZzz, JSON хорош тем, что ты можешь достаточно сложные объекты в него запаковать и вытащить, всего одним ловким движением.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.