开发者

Web Dev - Where to store state of a shopping-cart-like object using jquery cookie plugn

this is my sample code

var myCookie;
var initial_arr = new Array();
var myCookie_arr = new Array();
var cookieItem;
$(fu开发者_运维技巧nction() {

        ...

        /* 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();                        
        }
    });
});


I saw your other question here and it appears you want to add, remove or clear the cookie array. I put these basic functions together to give you an idea of how to do that

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 [];
}


I strongly recommend you to forget the shopping cart cookie at all. Use ajax calls to maintain the shopping cart in the session at server side. Despite the specification, the cookie value has in the most webbrowsers namely not an unlimited length.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜