【发布时间】:2018-08-21 14:19:26
【问题描述】:
我正在使用下面的代码在每次点击同一个按钮时设置一个cookie,每次点击都会增加一个数字值并将产品的标题保存为值(例如名称:1,值:汽车):
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 值:火车
我知道为每个页面创建新按钮会更容易,但我在我的网站上使用模板系统,而且我们有成千上万的产品页面,所以这对我来说不是一个可行的选择。
【问题讨论】:
-
我认为更好的方法是在你的cookie中保存一个json编码的数组。这样,您就不会在访问者的浏览器上创建大量 cookie。对您来说,管理起来更简单。
-
“浏览产品并单击按钮,该按钮实质上会生成一个可以稍后调用的列表” ... 那么购物车呢?他们通常处理会话和数据库。
标签: javascript php cookies