如何创建一个在页面上存储多个值的cookie按钮

时间:2018-08-21 14:19:26

标签: javascript php cookies

每次单击同一按钮时,我都会使用以下代码来设置cookie,每次单击该cookie时数字值都会增加,并将产品标题另存为该值(例如,名称:1,Value :汽车):

var num=1;
  function addCookie() {

        var expString = "; expires=" + date.toGMTString();
        var cookievalue=escape(document.querySelector("[name=addpart]").value) + ";";
        document.cookie=num + "=" + cookievalue + expString + "; path=/"; 
        num++;
    }

它在我的页面上运行良好,每次单击时都将其设置为新的cookie名称,依次为“ 1”,“ 2”,“ 3”,依此类推,但是很明显,我只能使用:

  • 名称:1值:汽车
  • 名称:2值:汽车
  • 名称:3值:汽车

但是,当我转到另一个页面并再次单击该按钮时,它将覆盖名称为1的cookie并再次开始该过程。

我想知道如何在页面上继续此按钮的名称计数吗?,以便用户可以浏览产品并单击该按钮,该按钮实质上会产生一个列表,以后可以调用该列表:

  • 名称:1值:汽车
  • 名称:2值:自行车
  • 名称:3值:火车

我知道为每个页面创建新按钮会更容易,但是我在Wesbite上使用了模板系统,并且我们有成千上万的产品页面,所以这对我来说不是一个可行的选择。

1 个答案:

答案 0 :(得分:0)

存储对象数组非常容易,我认为使用localStorage代替cookie更好。

//example of first structure
localStorage.setItem("visits", JSON.stringify({"1":[],"2":[],"3":[]}));

//getting the item
var visits = JSON.parse(localStorage.getItem("visits"));

//different visits

visits["1"].push("Car");
visits["1"].push("Bike");
visits["1"].push("Something");

visits["2"].push("Bike");
visits["2"].push("Bike");
visits["2"].push("Something");

visits["3"].push("Something");
visits["3"].push("Something");
visits["3"].push("Something");

//setting the item
localStorage.setItem("visits", JSON.stringify(visits));

console.log(visits)

此处示例https://jsfiddle.net/0kp9s2bv/