[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужно записать массив в куки
SoMeOnE
Добрый день.
У меня такая задача. Нужно на странице пройтись по дивам в которых есть img. Мне нужно у дива взять параметры, а у картинки src.
Прохожусь each, записываю в массив. Мне нужно теперь записать в куки(может быть можно и по другому, но я просто доделываю этот момент и кардинально менять ничего не хочется.)
Массив в куки не записывается. Как его привести к строке или может быть к json правильней?
В js вообще плаваю. Подскажите как это сделать. Код примерно такой.

$("#start_compare a").click(function() {
var i = 1;
var models = [];

$('#compare_wrapper img[options_array]').each(function(){
models[i] = $(this).attr('options_array');
i++;
});
cookie.set('cookie', models, 60*60*24);
console.log(cookie.get(cookie));
document.location.href = "example.php";
});

Что сделать с массивом models, прежде чем записать в куки?



Спустя 46 минут, 59 секунд (25.12.2011 - 11:30) sharki написал(а):
SoMeOnE
Можешь сериализовать и записать в куки строку, а потом когда буш доставать ансериализуй

Спустя 1 час, 13 минут, 48 секунд (25.12.2011 - 12:44) SoMeOnE написал(а):
sharki
У меня сейчас объект. По гуглу вроде бы так понел, что стандартных методов сериализации объекта или перевода объекта в json нету.
Нужно обязательно плагин подключить.

Спустя 12 минут, 22 секунды (25.12.2011 - 12:56) sharki написал(а):
SoMeOnE
 JSON.stringify

Спустя 31 минута, 24 секунды (25.12.2011 - 13:28) SoMeOnE написал(а):
Пишу так
$('#compare_wrapper img').each(function(){
var src = $(this).attr('src');
var options_array = $(this).attr('options_array');
test[src] = options_array;
i++;
});
test = JSON.stringify(test);
cookie.set('cookie', test, 60*60*24);
console.log(cookie.get(cookie));


// document.location.href = "example.com";
});

в консоли undefined пишет. Можешь подсказать что не так я делаю.

Спустя 2 минуты, 24 секунды (25.12.2011 - 13:30) sharki написал(а):
SoMeOnE
А ты еще каждый раз в консоль кидай test и смотри что попадает в куки, потом проверь еще и куки, нормально работают? Плюс у тебя каждый раз куки перезаписываются т.к одинаковое имя используешь cookie

Спустя 2 минуты, 56 секунд (25.12.2011 - 13:33) SoMeOnE написал(а):
sharki
До перевода JSON.stringify правильно выдает все. Консоль. После перевода, тоже все верно работает.
А после записи в куки неверное выдает. Что можно сделать ?

Спустя 3 минуты, 19 секунд (25.12.2011 - 13:36) sharki написал(а):
SoMeOnE
Покажи содержимое консоли, после первого прохода, до обработки
JSON.stringify(test)
и после

Спустя 7 минут, 25 секунд (25.12.2011 - 13:44) SoMeOnE написал(а):
Вот так заработало.
$('#compare_wrapper img').each(function(){
var src = $(this).attr('src');
var options_array = $(this).attr('options_array');
test[src] = options_array;
test = JSON.stringify(test);
cookie.set('models'+i, test, 60*60*24);
console.log(cookie.get('models'+i));
i++;
});

Консоль такая
{"http://example.com/phone_imgs/medium/bzxSd78jioKWe46Qralojcnbzxlojcn90uijio590uij2welojcnWe46.jpg":"pt_1 pt_0 des_classic mc_16 mc_0 mp_1 mp_0"}
nav.js (строка 348)
"{\"http://example.com/phone_imgs/medium/bzxSd78jioKWe46Qralojcnbzxlojcn90uijio590uij2welojcnWe46.jpg\":\"pt_1 pt_0 des_classic mc_16 mc_0 mp_1 mp_0\"}"
nav.js (строка 348)
"\"{\\\"http://example.com/phone_imgs/medium/bzxSd78jioKWe46Qralojcnbzxlojcn90uijio590uij2welojcnWe46.jpg\\\":\\\"pt_1 pt_0 des_classic mc_16 mc_0 mp_1 mp_0\\\"}\""
nav.js (строка 348)
"\"\\\"{\\\\\\\"http://example.com/phone_imgs/medium/bzxSd78jioKWe46Qralojcnbzxlojcn90uijio590uij2welojcnWe46.jpg\\\\\\\":\\\\\\\"pt_1 pt_0 des_classic mc_16 mc_0 mp_1 mp_0\\\\\\\"}\\\"\""


Правда все друг на друга записываются

Спустя 3 минуты, 7 секунд (25.12.2011 - 13:47) SoMeOnE написал(а):
Цитата (sharki @ 25.12.2011 - 10:36)
SoMeOnE
Покажи содержимое консоли, после первого прохода, до обработки
JSON.stringify(test)
и после

До
Object { http://example.com/phone_imgs/medium/bzxSd78jioKWe46Qralojcnbzxlojcn90uijio590uij2welojcnWe46.jpg="pt_1 pt_0 des_classic mc_16 mc_0 mp_1 mp_0"}


После
{"http://example.com/phone_imgs/medium/bzxSd78jioKWe46Qralojcnbzxlojcn90uijio590uij2welojcnWe46.jpg":"pt_1 pt_0 des_classic mc_16 mc_0 mp_1 mp_0"}


Это первый случай когда в общем случае в консоли кука не определнеа бывает.

Спустя 1 минута, 12 секунд (25.12.2011 - 13:48) SoMeOnE написал(а):
Не получается сначала собрать весь объект, а потом под одним именем в куку записать.

Спустя 5 минут, 51 секунда (25.12.2011 - 13:54) SoMeOnE написал(а):
Не знаю что я в этот раз правильно сделал, но заработало.
$('#compare_wrapper img').each(function(){
var src = $(this).attr('src');
var options_array = $(this).attr('options_array');
test[src] = options_array;

i++;
});
test = JSON.stringify(test);
cookie.set('models', test, 60*60*24);
console.log(cookie.get('models'));

Может грязно работал. С комментами запутался. Спасибо большое. В воскресный день на работе, что бы в праздники больше отдыхать. Нужно закончить модуль...)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.