2011-02-11 106 views
0

我有一個javascript文件鏈接到一個PHP頁面,當提交表單並刷新頁面時,需要保存一個值。讀取和寫入Cookie

有沒有簡單的方法來設置類似於PHP中的方法的Cookie。

setcookie("MovementDate", $MovementDate, time()+3600); 

我發現的一切都非常複雜,似乎無法工作。

還讀取設置cookie是目前的問題。從我的搜索,我想出了這種方法,但它不工作。

function readCookie(name) { 
var nameEQ = name + "="; 
var ca = document.cookie.split(';'); 
for(var i=0;i < ca.length;i++) { 
    var c = ca[i]; 
    while (c.charAt(0)==' ') c = c.substring(1,c.length); 
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 
} 

}

var movement = readCookie(MovementDate); 
document.write(movement); 
+0

如果你可以使用jQuery,這是一個簡單的插件JQuery的餅乾。這很好。 http://plugins.jquery.com/project/Cookie – Nishant 2011-02-11 06:46:53

回答

2

如果你已經習慣使用PHP,你可以使用PHPjs

對於設置,使用setcookie功能。

對於閱讀,請使用使用runkit_superglobals函數。這將使您使用與PHP完全相同的方法訪問超全局的$_COOKIE

例子:

// Setting 
// setcookie uses seconds but the JS Date object returns milliseconds, 
// so we need to divide by 1000 
setcookie("foo", "bar", (new Date().getTime()/1000) + 3600); 

// Reading 
runkit_superglobals();  
alert($_COOKIE["foo"]); // alerts "bar" 
+2

除非他已經使用phpjs,這是一個可怕的想法。 – 2011-02-11 06:42:11

2

當調用readCookie,參數必須是一個字符串。改變你的倒數第二行這樣的:

var movement = readCookie("MovementDate");