如何重复为cookie添加数据 或者替换cookie数据

Djxiaotaiyang 2018-07-08 08:27:59
需求是 页面加载的时候获取到cookie 是一个二维数组 然后是在点击事件后为这个二维数组重新赋值 或者替换该数组 或者追加数据 都可以 再次刷新页面后获取到点击事件后重新赋值的数据,

为什么我替换不掉昵,获取的永远都是初始化的数据

代码太多了就不贴了!

那位大神能给个小例子 借鉴一下 在线等
...全文
767 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ambit_tsai-微信 2018-07-09
  • 打赏
  • 举报
回复
引用 4 楼 Djxiaotaiyang 的回复:
你这个我有点没看懂 感觉有点复杂。

我这个是这么做的 在页面初始化的时候我设置了一个cookie cookie的值是一个数组 array[{}]

然后在页面加载完成后 点击按钮的时候获取页面的一些值,然后获取的cookie array[{}] 对这个数组添加一个json数据。

然后在刷新页面的时候获取到 array[{},{}] 赋值后的数据。以此类推。 但是我不知道是我没传进去 还是杂回事 取到的都是 array[{}] 初始化的数据

有一点,你要注意一下,cookie中只能存字符串,所以你读取的时候要进行转换。

JSON.stringify(arr); // 将数组转换成JSON字符串
JSON.parse(str); // 将字符串转换成对象(在这里是数组对象)

微信:ambit_tsai。QQ群:663286147。
qq_34660456 2018-07-09
  • 打赏
  • 举报
回复
引用 9 楼 qq_34660456 的回复:
[quote=引用 8 楼 ambit_tsai 的回复:]
[quote=引用 7 楼 Djxiaotaiyang的回复:][quote=引用 6 楼 ambit_tsai 的回复:]
[quote=引用 4 楼 Djxiaotaiyang 的回复:]

你这个我有点没看懂 感觉有点复杂。

我这个是这么做的 在页面初始化的时候我设置了一个cookie cookie的值是一个数组 array[{}]

然后在页面加载完成后 点击按钮的时候获取页面的一些值,然后获取的cookie array[{}] 对这个数组添加一个json数据。

然后在刷新页面的时候获取到 array[{},{}] 赋值后的数据。以此类推。 但是我不知道是我没传进去 还是杂回事 取到的都是 array[{}] 初始化的数据

有一点,你要注意一下,cookie中只能存字符串,所以你读取的时候要进行转换。

JSON.stringify(arr); // 将数组转换成JSON字符串
JSON.parse(str); // 将字符串转换成对象(在这里是数组对象)

微信:ambit_tsai。QQ群:663286147。
[/quote]我转了 但是还是赋值不了[/quote]
那应该是你写错了,如下用

document.cookie = 'arr='+JSON.stringify(arr);
[/quote]



var Cookie = $.cookie('value');
var array = [{"id":"0"}],
console.log(Cookie)
if(Cookie ==undefined){
var String = JSON.stringify(array );
$.cookie('value',String,{
expires: 7,
});

}else{
var obj = eval('(' + Cookie + ')');
var CookieArrayObj={
"id":"1"
}
obj.push(CookieArrayObj);
var String = JSON.stringify(obj);
$.cookie('value',String,{
expires: 7,
path: '/'
});
}

获取cookie的时候 能获取到二次添加的数据

[/quote]说错了是不能获取二次添加的数据
qq_34660456 2018-07-09
  • 打赏
  • 举报
回复
引用 8 楼 ambit_tsai 的回复:
[quote=引用 7 楼 Djxiaotaiyang的回复:][quote=引用 6 楼 ambit_tsai 的回复:]
[quote=引用 4 楼 Djxiaotaiyang 的回复:]

你这个我有点没看懂 感觉有点复杂。

我这个是这么做的 在页面初始化的时候我设置了一个cookie cookie的值是一个数组 array[{}]

然后在页面加载完成后 点击按钮的时候获取页面的一些值,然后获取的cookie array[{}] 对这个数组添加一个json数据。

然后在刷新页面的时候获取到 array[{},{}] 赋值后的数据。以此类推。 但是我不知道是我没传进去 还是杂回事 取到的都是 array[{}] 初始化的数据

有一点,你要注意一下,cookie中只能存字符串,所以你读取的时候要进行转换。

JSON.stringify(arr); // 将数组转换成JSON字符串
JSON.parse(str); // 将字符串转换成对象(在这里是数组对象)

微信:ambit_tsai。QQ群:663286147。
[/quote]我转了 但是还是赋值不了[/quote]
那应该是你写错了,如下用

document.cookie = 'arr='+JSON.stringify(arr);
[/quote]



var Cookie = $.cookie('value');
var array = [{"id":"0"}],
console.log(Cookie)
if(Cookie ==undefined){
var String = JSON.stringify(array );
$.cookie('value',String,{
expires: 7,
});

}else{
var obj = eval('(' + Cookie + ')');
var CookieArrayObj={
"id":"1"
}
obj.push(CookieArrayObj);
var String = JSON.stringify(obj);
$.cookie('value',String,{
expires: 7,
path: '/'
});
}

获取cookie的时候 能获取到二次添加的数据

ambit_tsai-微信 2018-07-09
  • 打赏
  • 举报
回复
引用 7 楼 Djxiaotaiyang的回复:
[quote=引用 6 楼 ambit_tsai 的回复:]
[quote=引用 4 楼 Djxiaotaiyang 的回复:]

你这个我有点没看懂 感觉有点复杂。

我这个是这么做的 在页面初始化的时候我设置了一个cookie cookie的值是一个数组 array[{}]

然后在页面加载完成后 点击按钮的时候获取页面的一些值,然后获取的cookie array[{}] 对这个数组添加一个json数据。

然后在刷新页面的时候获取到 array[{},{}] 赋值后的数据。以此类推。 但是我不知道是我没传进去 还是杂回事 取到的都是 array[{}] 初始化的数据

有一点,你要注意一下,cookie中只能存字符串,所以你读取的时候要进行转换。

JSON.stringify(arr); // 将数组转换成JSON字符串
JSON.parse(str); // 将字符串转换成对象(在这里是数组对象)

微信:ambit_tsai。QQ群:663286147。
[/quote]我转了 但是还是赋值不了[/quote] 那应该是你写错了,如下用

document.cookie = 'arr='+JSON.stringify(arr);
Djxiaotaiyang 2018-07-09
  • 打赏
  • 举报
回复
引用 6 楼 ambit_tsai 的回复:
[quote=引用 4 楼 Djxiaotaiyang 的回复:]

你这个我有点没看懂 感觉有点复杂。

我这个是这么做的 在页面初始化的时候我设置了一个cookie cookie的值是一个数组 array[{}]

然后在页面加载完成后 点击按钮的时候获取页面的一些值,然后获取的cookie array[{}] 对这个数组添加一个json数据。

然后在刷新页面的时候获取到 array[{},{}] 赋值后的数据。以此类推。 但是我不知道是我没传进去 还是杂回事 取到的都是 array[{}] 初始化的数据

有一点,你要注意一下,cookie中只能存字符串,所以你读取的时候要进行转换。

JSON.stringify(arr); // 将数组转换成JSON字符串
JSON.parse(str); // 将字符串转换成对象(在这里是数组对象)

微信:ambit_tsai。QQ群:663286147。
[/quote]我转了 但是还是赋值不了
ambit_tsai-微信 2018-07-09
  • 打赏
  • 举报
回复
引用 10 楼 qq_34660456 的回复:
说错了是不能获取二次添加的数据


var Cookie = $.cookie('value');
console.log('value=', Cookie);
var array = [{"id":"0"}];
if(Cookie === undefined){
// 首字母大写的String是JS的基本类型,改成string
var string = JSON.stringify(array);
$.cookie('value', string, {
expires: 7,
path: '/' // path设置成'/',不然第二次取出来的值可能不一样
});
}else{
var obj = eval('(' + Cookie + ')');
var CookieArrayObj = {
"id":"1"
}
obj.push(CookieArrayObj);
var string = JSON.stringify(obj);
$.cookie('value', string, {
expires: 7,
path: '/'
});
}

luckczj 2018-07-08
  • 打赏
  • 举报
回复
我还没有用参数你都没有懂就没有办法了,你还传了参数哦。good night
Djxiaotaiyang 2018-07-08
  • 打赏
  • 举报
回复
引用 3 楼 luckczj 的回复:
可以看到内容的变化。


你这个我有点没看懂 感觉有点复杂。

我这个是这么做的 在页面初始化的时候我设置了一个cookie cookie的值是一个数组 array[{}]

然后在页面加载完成后 点击按钮的时候获取页面的一些值,然后获取的cookie array[{}] 对这个数组添加一个json数据。

然后在刷新页面的时候获取到 array[{},{}] 赋值后的数据。以此类推。 但是我不知道是我没传进去 还是杂回事 取到的都是 array[{}] 初始化的数据
luckczj 2018-07-08
  • 打赏
  • 举报
回复
可以看到内容的变化。
luckczj 2018-07-08
  • 打赏
  • 举报
回复
luckczj 2018-07-08
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language="javascript">
//设置cookie的值
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + escape(cvalue) + "; " + expires;
}
//读Cookie
function getCookie(objName) {//获取指定名称的cookie的值
var arrStr = document.cookie.split("; ");
for (var i = 0; i < arrStr.length; i++) {
var temp = arrStr[i].split("=");
if (temp[0] == objName) return unescape(temp[1]);
}
return "";
}
function SaveArray1()
{
var arr = [[1,2,4,6],[2,4,7,8],[8,9,10,11],[9,12,13,15]];
var info="";
for(var i=0;i<4;i++)
{
for(var j=0;j<4;j++)
{
if(j==0)
{
info+=arr[i][j];
}
else
{
info+=" "+arr[i][j];
}
}
if(i!=3)info+="\r\n";
}
setCookie("sz",info,1);
}
function SaveArray2()
{
var arr = [[9,12,13,15],[8,9,10,11],[2,4,7,8],[1,2,4,6]];
var info="";
for(var i=0;i<4;i++)
{
for(var j=0;j<4;j++)
{
if(j==0)
{
info+=arr[i][j];
}
else
{
info+=" "+arr[i][j];
}
}
if(i!=3)info+="\r\n";
}
setCookie("sz",info,1);
}
function ReadArray()
{
var txt=document.getElementById("txtArray");
var info=getCookie("sz");
txt.value=info;
}
</script>
</head>

<body>
<p>
<label>数组内容:<br />
</label>
<label for="txtArray"></label>
<textarea name="txtArray" cols="50" rows="6" id="txtArray"></textarea>
<label></label>
</p>
<p>
<input type="button" name="btSave1" id="btSave1" value="保存数组1" onclick="SaveArray1()"/>
<input type="button" name="btSave2" id="btSave2" value="保存数组2" onclick="SaveArray2()"/>
<input type="button" name="btRead" id="btRead" value="读取" onclick="ReadArray()"/>
</p>
</body>
</html>

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧