2013-01-04 153 views
1

我正在尝试创建一个应用程序,该cookie需要多个值,但是看起来我的setCookie函数没有采用多个cookie,而是在输入新的值时替换每个值,所以showCookie函数只显示最后输入的值。javascript cookie,设置多个cookie

setCookie方法:

function setCookie(c_name,value,exdays) 
{ 
var exdate=new Date(); 
exdate.setDate(exdate.getDate() + exdays); 
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
document.cookie=c_name + "=" + c_value; 
} 

storeValues功能:

function storeValues() 
{ 
var note= document.getElementById("note").value; 



setCookie("note",note,365); 


alert("Cookies stored!") 

} 

显示功能:

function show() 
{ 
var note= document.getElementById("note").value; 


alert("Note:" + note ); 

} 

function showall() 
{ 
var allcookies = document.cookie; 
alert("All Cookies : " + allcookies); 

// Get all the cookies pairs in an array 
cookiearray = allcookies.split(';'); 

// Now take key value pair out of this array 
for(var i=0; i<cookiearray.length; i++){ 
    name = cookiearray[i].split('=')[0]; 
    value = cookiearray[i].split('=')[1]; 
    alert("Key is : " + name + " and Value is : " + value); 
} 
} 

回答

0

你需要从赋值运算符(=)更改为级联和分配复合运算符( +=)。

如果它存在,覆盖cookie键也是一个好主意。所以我建议将cookie值转换成一个对象,修改它们,然后序列化回一个cookie字符串。

+0

嗯不知道这一切意味着什么。它是setCookie中的操作符吗? – user1944305

+0

@ user1944305是的。 – alex

+0

谢谢!它工作 - 是的。我需要做一些调整。我有一个删除函数,但它只删除刚才输入的值'function deleteallcookies() {var cookie = document.cookie; var arr = cookie.split(“;”); var i; (i = 0; i user1944305