2013-01-04 198 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