получить cookie, добавить новое значение и установить его заново с помощью значений jquery и json - PullRequest
1 голос
/ 09 октября 2011

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

{"0": "11", "1": "17", "2": "7"}

$.fn.memoProducts = function(options){

   options= $.extend({
      cookie_name: "memoProducts",
      cookie_path: "/",
      cookie_expires: 3,
    }, options);

function setCookie() {
    var cookieValues = getCookie();
    var cookie_value_add = [];
    cookie_value_add = cookieValues ? $.parseJSON(cookieValues): [];
    cookie_value_add.push(productID);
    cookie_value = JSON.stringify(cookie_value_add);
    var date = new Date;
    date.setTime(date.getTime()+(options.cookie_expires*24*60*60*1000));
    document.cookie = options.cookie_name+"="+cookie_value+"path="+options.cookie_path+";expires="+date.toGMTString();
 }

function getCookie() {
  if (document.cookie) {
     var values = document.cookie.split(options.cookie_name+"=")[1];
     if (values) {
        return values.split(";")[0];
     }
  }
  return false;
 }

$(this).click(function(e){
    setCookie();
});
}

$(function() {
    $("a.bookmark").memoProducts();
})

Я не знаю, как заставить это работать. Первая ошибка: cookie_value_add имеет значение null. установка cookie только с этим:

cookie_value = productID;

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

...