2011-02-03 87 views
0

我的代碼有什麼問題,爲什麼cookie是空的?jquery,javascript對象插入cookie

<script type="text/javascript"> 
$(document).ready(function(){ 
    personObj = new Object(); 
    personObj.firstname="John"; 
    personObj.lastname="Doe"; 

    $.cookie("test_cookie", personObj, { path: "/"}, { expires: 1 });  
}); 
</script> 

我需要得到這樣的結果:

test_cookie => array(personObj => array(firstname=>"John", lastname=>"Doe")) 

感謝;)

+0

你使用哪個插件? – 2011-02-03 14:14:27

+0

Cookie插件:https://github.com/carhartl/jquery-cookie/blob/master/jquery.cookie.js#L63 – lolalola 2011-02-03 14:38:30

回答

3

據我所知,有在cookie功能沒有建立在jQuery的,所以你必須使用一個插件。您正在使用this one不接受對象的值(check the source code):

序列化對象的字符串第一:

$.cookie("test_cookie", JSON.stringify(personObj), { path: "/", expires: 1 }); 

在服務器端(看起來像PHP):

$person = json_decode($_COOKIE['test_cookie'], true); 

此外,創建簡單對象的更好方法是:

var personObj = { 
    firstname: "John", 
    lastname: "Doe" 
}; 

並且不要忘記varpersonObj之前(否則您創建一個全局變量)。