2011-12-01 47 views
12

Tôi không phải là lập trình viên. Tôi đang cố gắng sử dụng tập lệnh cookie để nhớ lựa chọn menu thả xuống cuối cùng.Ngày hết hạn cookie

Tôi đã tìm thấy tập lệnh hoạt động nhưng tập lệnh chỉ có cookie phiên. Làm cách nào để thêm ngày hết hạn vào cookie trong tập lệnh này?

<head> 
    <script>   
    function SETcookie() { 
     document.cookie = "Selected=" + document.getElementById('myList').selectedIndex; 
    } 

    function GETcookie() { 
     if (document.cookie) { 
     eval(document.cookie); 
     document.getElementById('myList').selectedIndex = Selected; 
     } 
    }  
    </script> 
</head> 

<body onLoad="GETcookie()"> 
    <select id="myList" onChange="SETcookie()"> 
    <option value="1">Option 1</option> 
    <option value="2">Option 2</option> 
    <option value="3">Option 3</option> 
    <option value="4">Option 4</option> 
    </select> 
</body> 

Trả lời

3

thử

var a = new Date(); 
a = new Date(a.getTime() +1000*60*60*24*365); 
document.cookie = 'mycookie=somevalue; expires='+a.toGMTString()+';'; 

PS. Giá trị 1000 * 60 * 60 * 24 * 365 = 1 Năm

Để Lấy chỉ số được lựa chọn thử GETcookie này:

function GETcookie(){  
if (document.cookie){  
var a = document.cookie; 
Selected = a.substring(a.search('Selected=')+9,a.search(';')); 
alert("Selected = " + Selected); 
document.getElementById('myList').selectedIndex=Selected; 
}} 
+0

Đó không làm việc. Có lẽ tôi đặt nó ở một nơi sai. Bạn có thể chỉ cho tôi làm thế nào nó phải được ở đây http://jsfiddle.net/BrUmu/ –

+0

Chỉ cần thiết lập này trong chức năng SETcookie của bạn. bạn được những gì? – CloudyMarble

+0

Tôi đã làm, các cookie ngừng hoạt động hoàn toàn. Xem cập nhật tại đây http://jsfiddle.net/BrUmu/1/ –

0

Bạn có thể thử này:

function SETcookie(){ 
    var validity_days = 7; 
    var expires = validity_days * 1000 * 60 * 60 * 24; 
    var expires_date = new Date(today.getTime() + (expires)); 
    document.cookie="Selected="+document.getElementById('myList').selectedIndex + ";expires=" + expires_date.toGMTString() + ";"; 
} 
+1

"hôm nay" không được xác định và chức năng của bạn chỉ dành cho mã của riêng bạn, vì nó sử dụng đối tượng # myList DOM. Đó là lỗi và vô dụng. –

+0

Bạn đúng là 'hôm nay' không được định nghĩa ở đây nhưng "myList" là id của phần tử từ câu hỏi, nó không phải là thứ mà chúng vừa tạo ra. –

7

Hãy thử điều này:

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

c_name là tên của cookie

c_value là giá trị cookie

exdays là số ngày bạn muốn cookie hết hạn sau

Nguồn: http://www.w3schools.com/js/js_cookies.asp

+0

thoát không còn được dùng nữa. Bạn không nên sử dụng nó. Nhân tiện, hãy luôn kiểm tra kỹ các ví dụ từ w3schools ... –

2

Đây là chức năng mà là 100% làm việc và không có khấu hao chức năng.

function setCookie(variable, value, expires_seconds) { 
    var d = new Date(); 
    d = new Date(d.getTime() + 1000 * expires_seconds); 
    document.cookie = variable + '=' + value + '; expires=' + d.toGMTString() + ';'; 
} 
2

Có thể điều này sẽ giúp

document.cookie = "coolName"+ "=" +"coolValue"+ ";" + "expires="+ new Date(new Date().getTime()+60*60*1000*24).toGMTString()+";path=/"; 
Các vấn đề liên quan