Накидываю сайтец пацану на диплом: https://jsfiddle.net/uhzdtjer/ Интересует кнопка "купить" - что-то я с ней перемудрил по-моему. Сейчас работает так: в куку пишется строчка типа: 1*3-2*5 Красным пометил id товара, зелёным количество, остальное это разделители. Так вот, эта строчка парсится в PHP через explode, а в JS через split. Думаю, может сделать проще? Я бы засунул массив в строку, но не знаю как сделать в JS serialize грамотно, чтобы потом в PHP unserialize делался без проблем. Подскажите кто плавал.
Дошли руки это попробовать. Делаю так: Код (Javascript): // берём id товара var id = $('#buy-button').data('id'); // корзина пока пуста, создаём новую var basket = {}; // добавляем в корзину товар с количеством 1 basket[id] = 1; // объединяем в строку basket = JSON.stringify(basket); // записываем корзину в куку Cookies.set('basket', basket); Вот что записывается в куку, когда id товара 10: Код (Text): {%2210%22:1} Работает нормально, но что за %22 появились? Гугл пишет, что это двойные ковычки. Не получается убрать, перегуглил всё что мог.
Всё, разобрался. Экранирование делала эта библиотека: https://github.com/js-cookie/js-cookie Записал в куки так и экранирование ушло: Код (Javascript): document.cookie = 'basket='+basket; Результат: Код (Text): {"5":"1","6":4,"8":5}