Web Dev - Где хранить состояние объекта, похожего на корзину, используя плагин jquery cookie - PullRequest
0 голосов
/ 25 декабря 2009

это мой пример кода

var myCookie;
var initial_arr = new Array();
var myCookie_arr = new Array();
var cookieItem;
$(function() {

        ...

        /* This quite works but can't actually achieve what I want */
        $('#add_item').click(function(){                                          
            initial_arr.push(msg.txt);
            //Update new cookie
            $.cookie('cookieItem', initial_arr, { expires: 1});
            //append on click
            $('#item-list').append(msg.txt);
        });

        /* This is what I intend to do */
        //Update new cookie
        $.cookie('cookieItem', msg.txt, { expires: 1});
        // add elements at the end of my cookie array
        myCookie_arr.push($.cookie('cookieItem'));

        ...

    $(window).load(function() {

        ...

        alert(myCookie_arr);
        for(var i= 0; i < myCookie_arr; i++) {
            //append on visiting other pages
            $('#item-list').append(myCookie_arr[i]);
        }

        ...            

        if(cookieItem) {
            $('#item-list').append($.cookie('cookieItem'));
        } else {
            $('#cat').hide();                        
        }
    });
});

Ответы [ 2 ]

0 голосов
/ 25 декабря 2009

Я настоятельно рекомендую вам вообще забыть печенье с корзиной. Используйте ajax-вызовы для поддержания корзины покупок в сеансе на стороне сервера. Несмотря на спецификацию, значение cookie имеет в большинстве браузеров, а именно , а не , неограниченную длину.

0 голосов
/ 25 декабря 2009

Я видел ваш другой вопрос здесь, и кажется, что вы хотите добавить, удалить или очистить массив cookie. Я собрал эти основные функции, чтобы дать вам представление о том, как это сделать

function addToCookie(arr,item){
 arr.push(item)
 $.cookie('cookieItem', arr, {expires: 1});
 // add item to cart
 return arr;
}

function removeFromCookie(arr,item){
 arr.splice( arr.indexOf(item) , 1);
 $.cookie('cookieItem', arr, {expires: 1});
 // remove item from cart
 return arr;
}

function clearCookie(arr){
 $.cookie('cookieItem', null );
 // empty the cart
 return [];
}
...