2013-01-11 39 views
0

可能重複:
how to store an array in jquery cookie?如何數組中的每個內容存儲在cookie的

如何餅乾數組中的每個內容的JavaScript和我也有以檢索所有存儲數組的術語? 我試過,但我不能夠以檢索項目從餅乾回來....

我的代碼如下笏我試圖

var myArray=["123","234","32"]; 
$.cookie('myCookie', escape(myArray), { expires: 1}); 
var s = unescape($.cookie('myCookie'); 
+1

你試過了什麼? –

+0

[你有什麼嘗試?](http://www.whathaveyoutried.com/)你是否搜索過關於cookies的教程? – Cerbrus

+0

添加了jQuery標籤,因爲它看起來像...現在我們有一個副本。看起來你應該不使用'escape'或'unescape'。 –

回答

0

使用jQuery,您可以使用序列化功能來檢索字符串中的所有數據:http://api.jquery.com/serialize/

+0

'.seralize'與數組沒有太大關係,它用於將表單轉換爲查詢字符串... –

0

要在JavaScript中創建cookie,您必須爲document.cookie指定一個字符串。

它採用name = value格式的值,例如

document.cookie = 'data=hello; max-age=60; path=/; domain=yoursite.com'; 

爲存儲陣列中這裏的最佳方式是使用JSON和方法JSON.stringify()

var arr = ['hello', 'goodbye', 'au revoir']; 
document.cookie = 'data=' + escape(JSON.stringify(arr)) + '; max-age=60; path=/; domain=yoursite.com' 

(注意一個cookie必須< = 4KB)

檢索cookie是有點難,因爲它是一個字符串,所以我借用了這個函數,它搜索字符串中的cookie名稱,然後返回它的值:

// Source: http://www.thesitewizard.com/javascripts/cookies.shtml 

function get_cookie (cookie_name) 
{ 
    var cookie_string = document.cookie ; 
    if (cookie_string.length != 0) { 
     var cookie_value = cookie_string.match (
         '(^|;)[\s]*' + 
         cookie_name + 
         '=([^;]*)'); 
     return decodeURIComponent (cookie_value[2]) ; 
    } 
    return '' ; 
} 

在我們的例子中,你會使用這樣的:

var cookie = get_cookie('data'); 
var arr = JSON.parse(cookie); // Convert JSON string back into array 

注意我用JSON.parse()將JSON字符串轉換回JavaScript數組。

有關在JavaScript中使用Cookie的詳細信息,我建議您閱讀:http://www.thesitewizard.com/javascripts/cookies.shtml

相關問題