Так ведь при наличии cookie так и будет -- корзина сохранится, главное не дропать сессии в течении некоторого времени
|
они ж сами дропаются, и тут есть два варианта: либо корзина прорадает с сессией, либо мы храним корзины в БД и вручную их чистим со временем. Актуальность второго варианта под вопросом...
|
x-yuri, что значит сами дропаются оО? Они дропнутся тогда, когда я им скажу :)
UPD Ну да, первы вариант отлично подходит. В принципе, любая долгое время не обновляющаяся сессия должна умирать, так что все нормально. |
если пишу вот так
myArr2=$.cookie("tovar"); // myArr2 присваеваем значение из кук if (myArr2 == null) // если кука пустая тобишьее нету var myArr2=[]; // создаём массив function AddToCart(id,price, show_tovar, pr){ // myArr2.push([id,price, show_tovar, pr]); // добавляем в массив пришедшие значения $.cookie("tovar", myArr2); // и записываем в куку } то фаербаг мне говорит myArr2.push is not a function а если делаю вот так if (myArr2 == null) var myArr2=[]; else myArr2=$.cookie("tovar"); function AddToCart(id,price, show_tovar, pr){ myArr2.push([id,price, show_tovar, pr]); $.cookie("tovar", myArr2); } то в куку всё прекрасно добавляет только если обновить страницу то кука обнуляется , тоесть из-за этой строчки myArr2=$.cookie("tovar"); он ругается на эту myArr2.push([id,price, show_tovar, pr]); почему так происходит? |
myArr2=$.cookie("tovar"); // myArr2 присваеваем значение из кук console.log(myArr2, myArr2 instanceof Array, myArr2 == null); if (myArr2 == null) // если кука пустая тобишьее нету var myArr2=[]; // создаём массив |
непонял ?... в консоли пишет
[] 18,1600,10,12,14,800,5,6 false false |
как понимаю - в $.cookie("tovar") у нас есть данные, и даже после перезагрузки страницы, только на строчку
myArr2.push([id,price, show_tovar, pr]);он ругается - myArr2.push is not a function ему синтаксис не нравится? |
В куках могут лежать только строки. Всё, что вы туда кладёте, преобразуется в строку, и вытаскивается оттуда в виде строки.
|
тоесть когда я сделал вот так myArr2=$.cookie("tovar");
то в myArr2 у меня записалась строка а не массив? а массив кстати это же и есть строка в которой перечислены значения через запятую.. я запутался что-то =) |
аа точно console.log(myArr2, myArr2 instanceof Array, myArr2 == null);
вот эта строка говорит следущее myArr2 =18,1600,10,12,14,800,5,6 myArr2 instanceof Array=false myArr2=false а как тогда обратно из этой каши сделать массив? |
Часовой пояс GMT +3, время: 08:52. |