Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибка скрипта в Опера и Сафари
 
 автор: Yustys   (25.05.2016 в 22:10)   письмо автору
 
 

Добрый день. Сохраняю информацию в кукисах посредством массива следующей конструкцией:

var cartCookieNew = {[cart_id]: {'cartId': [cart_id],'cartName': [cart_name],'cartPrice': [cart_price],'cartCount': [1]}};

- получаю такой вот резултат {"cart_35228":{"cartId":["cart_35228"],"cartName":["Чёрная кожаная маска на глаза"],"cartPrice":[664],"cartCount":[1]}}

ПОЧЕМУ-ТО РАБОТАЕТ ТОЛЬКО В ГУГЛ ХРОМ И ФАЙРФОКСЕ, а в ОПЕРЕ пишет Uncaught SyntaxError: Unexpected token [

Помогите, пожалуйста, разобраться почему возникает эта ошибка, как записать корректно???

  Ответить  
 
 автор: confirm   (26.05.2016 в 10:28)   письмо автору
 
   для: Yustys   (25.05.2016 в 22:10)
 

{[cart_id]: {'cartId': [cart_id],'cartName': [cart_name],'cartPrice': [cart_price],'cartCount': [1]}}; - выбросить, и записывать результат JSON.stringify

  Ответить  
 
 автор: Yustys   (26.05.2016 в 10:55)   письмо автору
 
   для: confirm   (26.05.2016 в 10:28)
 

Полностью согласен со следующим шагом, я так и делаю

cartCookie=JSON.stringify(cartCookie);//конвертирование в строку
$.cookie('cartCookie',cartCookie,{expires: 7, path: '/'});//запись в куки

Просто удобно расширять массив таким вот образом:
$.extend(cartCookie,cartCookieNew);// расширили массив

Т.е. форма записи удобная, не хотелось бы от нее отказываться, просто хочется понять, почему не все браузеры
эту форму записи пропускают.

  Ответить  
 
 автор: Yustys   (26.05.2016 в 11:45)   письмо автору
 
   для: confirm   (26.05.2016 в 10:28)
 

Разобрался сам. Может кому будет интересно:

var cartCookie = {[cart_id]: {'cartId': [cart_id],'cartName': [cart_name],'cartPrice': [cart_price],'cartCount': [1]}};
- НЕСТАБИЛЬНОЕ РЕШЕНИЕ

var obg={};
obg[cart_id]={'cartId': [cart_id],'cartName': [cart_name],'cartPrice': [cart_price],'cartCount': [1]};
var cartCookie=obg;
- РАБОТАЮЩЕЕ И ПРАВИЛЬНОЕ РЕШЕНИЕ!!!

  Ответить  
 
 автор: confirm   (26.05.2016 в 13:59)   письмо автору
 
   для: Yustys   (26.05.2016 в 11:45)
 

Еще раз: obg[cart_id]={'cartId': [cart_id],'cartName': [cart_name],'cartPrice': [cart_price],'cartCount': [1]}; - это не есть корректный JSON, отсюда вы и можете схлопотать ошибку.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования