[英]I want to store Javascript array as a Cookie
是否可能,我有某种列表,我想将其存储在浏览器中,如果不可能,那么有效的方法是什么?
JSON对其进行编码,有效地生成一个字符串,如"{name:'myname',age:'myage'}"
,您将其放入cookie中,在需要时检索并解码回JavaScript数组/对象。
示例 - 将数组存储在cookie中:
var arr = ['foo', 'bar', 'baz'];
var json_str = JSON.stringify(arr);
createCookie('mycookie', json_str);
稍后,将cookie的内容检索为数组:
var json_str = getCookie('mycookie');
var arr = JSON.parse(json_str);
注意: cookie函数不是本机的,取自如何从cookie创建和读取值?
对于数组中的每个值id,请尝试以下方法将值保存在cookie数组中:
<script type="text/javascript">
/**
* set cookie
*/
function set_cookie(cookiename, cookievalue, hours) {
var date = new Date();
date.setTime(date.getTime() + Number(hours) * 3600 * 1000);
document.cookie = cookiename + "=" + cookievalue + "; path=/;expires = " + date.toGMTString();
}
set_cookie('item['+id+']', id, 24*365*10); // 10 years
</script>
你可以在php中检索这个数组:
<?php
foreach($_COOKIE['item'] as $e){
echo $e,'<br />';
}
?>
假设购物车是我们可以设置的数组
document.cookie = 'cart='+ JSON.stringify(cart)
然后,你必须创建一个 function 来读取cookie
function getCookie(cookieName) {
var name = cookieName + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if ((c.indexOf(name)) == 0) {
return c.substr(name.length);
}
}
}
然后你可以得到cookie
cart = JSON.parse(getCookie('cart'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.