Как создать многомерный массив
function AddToCart(id,price,show_tovar,pr) { var myArr = [id,price, show_tovar, pr]; $.cookie("tovar", myArr); var str = $.cookie("tovar"); alert(str); } В скрипт приходят 4 переменные , я загоняю их в массив , а массив загоняю в куку, и теперь если у меня летит новая партия из четырех переменных то массив myArr перезаписывается, нужно создать еще один массив в котором будут храниться другие массивы например var myArr2=[myArr] но тогда myArr2 тоже будет перезаписываться. Как дополнить массив чтобы создавался сначала массив myArr2[0] с индексом 0 потом myArr2[1] myArr2[2] и так далее? |
вот че намутил
function AddToCart(id,price,show_tovar,pr) { countArr=$.cookie("countArrr"); // if (countArr == null) //смотрим если нету countArr то создаем ее с цифрой 0 countArr=0; else countArr++; // если есть то прибавляем 1 var myArr = [id,price, show_tovar, pr]; // в myArr загоняем переменные var myArr2=[]; // создаем массив myArr2 myArr2[countArr] = myArr; // присваеваем ему индекс который вычислили и //массиву с уникальным индексом присваеваем значение myArr в котором 4 значения $.cookie("tovar", myArr2); //дальше загоняем в куку $.cookie("countArrr",countArr); //загоняем в куку полученный индекс var str = $.cookie("tovar"); // переменной str присваеваем значение куки for (var i = 0; i<str.length; i++){ //перебираем массив alert(str); } } только алерт выдает ,,,,,,,,,17,500,4,4 если несколько раз понажимать то запятых будет еще больше например ,,,,,,,,,,,,,,,,,,,17,500,4,4 в чем косяк? добрые люди откликнитесь :) |
переменная myArr2 должна быть внешней для этой функции, как countArr. А так она каждый раз чистая при очередном вызове функции.
var myArr2 = []; function add2cart(a,b,c,d){ myArr2.push([a,b,c,d]); $.cookie('tovar',myArr2); $.cookie('countArr',myArr2.length); }если правильно понимаю, то это должно выглядеть так. |
во-первых, у массива есть метод push
во-вторых, если ты хочешь сохранить предыдущие значения, значит их сначала из кук достать нужно в-третьих, ты в курсе, что есть ограничение на размер куки? И непонятно, зачем в куках хранить что-либо, кроме id |
1. ограничение 4096 байт, интересно сколько таких массивов сможет поместить кука - 14,500,3,3 ? сколько товаров сможет максимум заказать человек ? (я не знаю поэтому это вопрос)
2. Хранить кроме id нужно цену на товар, потомучто у одного товара например кастрюльки есть 3 размера маленькая средняя и большая , а id у них 1 поэтому надо знать какая именно кастрюлька, и еще в корзине должно появиться название этой кастрюльки и цена , может я неправильно сделал тогда поправьте, тк я всегда думал что товары корзины хранятся в куках (названия цена и количество) . 3. про то что сначала достать предыдущие значения мысль хорошая спасибо 4. про push - я писал вот так myArr2.push[a,b,c,d]; и не получалось а надо было myArr2.push([a,b,c,d]); спасибо haha если есть мысли про корзину покупателя поделитесь или ссылку на статью дайте буду очень благодарен |
я до сих пор не понимаю, зачем хранить id в куках. Если пользователь должен залогиниться, чтобы сделать заказ, например, тогда можно вообще без id в куках. В куках будет храниться id сессии, а на сервере в сессии будут id товаров храниться, по ним сервер сможет узнать любую необходимую информацию и сгенерировать страничку. Очевдино, предполагается возможность заказа незалогиненными пользователями, поэтому храним id не в сессии на сервере, а в куках.
|
Цитата:
|
x-yuri вы правильно подумали, заказть должны мочь и не залогиненные пользователи,
e1f может быть и так, только можно ли яваскриптом создать сессию... пойду почитаю можно ли так |
FRIE, да причем тут JS вообще? Просто при получении сервером запроса типа "Добавить в корзину" и при отсутствии сессионной куки -- сессия создается новая, товар записывается туда, и в ответе приходит кука сессии. Все.
|
Цитата:
|
Часовой пояс GMT +3, время: 13:30. |