Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как создать многомерный массив (https://javascript.ru/forum/misc/9666-kak-sozdat-mnogomernyjj-massiv.html)

e1f 01.06.2010 01:25

Так ведь при наличии cookie так и будет -- корзина сохранится, главное не дропать сессии в течении некоторого времени

x-yuri 01.06.2010 02:32

они ж сами дропаются, и тут есть два варианта: либо корзина прорадает с сессией, либо мы храним корзины в БД и вручную их чистим со временем. Актуальность второго варианта под вопросом...

e1f 01.06.2010 04:07

x-yuri, что значит сами дропаются оО? Они дропнутся тогда, когда я им скажу :)

UPD Ну да, первы вариант отлично подходит. В принципе, любая долгое время не обновляющаяся сессия должна умирать, так что все нормально.

FRIE 01.06.2010 15:32

если пишу вот так
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]); почему так происходит?

x-yuri 01.06.2010 15:51

myArr2=$.cookie("tovar");       // myArr2 присваеваем значение из кук 
console.log(myArr2, myArr2 instanceof Array, myArr2 == null);
         if (myArr2 == null)     //   если кука пустая тобишьее нету            var myArr2=[];        //    создаём массив

FRIE 01.06.2010 16:46

непонял ?... в консоли пишет
[] 18,1600,10,12,14,800,5,6 false false

FRIE 01.06.2010 17:09

как понимаю - в $.cookie("tovar") у нас есть данные, и даже после перезагрузки страницы, только на строчку
myArr2.push([id,price, show_tovar, pr]);
он ругается -
myArr2.push is not a function


ему синтаксис не нравится?

Kolyaj 01.06.2010 17:11

В куках могут лежать только строки. Всё, что вы туда кладёте, преобразуется в строку, и вытаскивается оттуда в виде строки.

FRIE 01.06.2010 17:15

тоесть когда я сделал вот так myArr2=$.cookie("tovar");
то в myArr2 у меня записалась строка а не массив?
а массив кстати это же и есть строка в которой перечислены значения через запятую..
я запутался что-то =)

FRIE 01.06.2010 17:20

аа точно 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.