2012-03-17 39 views
8

Tôi đang sử dụng plugin jquery.cookie này và tôi cần đặt giá trị thành TRUE hoặc NULL/FALSE.giá trị đặt cookie jquery thành boolean true

Tôi đang cố gắng thực hiện như sau: $.cookie('ff', true, { expires: 30, path: '/' }); nhưng nó đặt giá trị thành chuỗi chứ không phải boolean.

Bất kỳ cách nào để sửa lỗi này?

+5

Có, phân tích chuỗi "true" thành boolean khi bạn đọc. – gdoron

+1

Theo như tôi biết bất cứ điều gì được lưu trữ trong cookie là một chuỗi, bởi vì cookie chính họ là chuỗi. Vì vậy, bất kỳ loại sửa chữa nào sẽ nằm ở bên đọc cookie của nó. –

+0

điều là tôi đang đọc nó với '$ this-> input-> cookie();' 's codeigniter chức năng, hiện php có bất kỳ chức năng để làm như vậy? – Alex

Trả lời

13

Cookie chỉ có giá trị chuỗi. Là gdoron commented, nếu bạn muốn coi giá trị là boolean, bạn cần phân tích cú pháp nó thành giá trị boolean khi giá trị cookie được đọc lại.

Vì bạn đã nhận xét rằng bạn đang đọc giá trị cookie bằng PHP, hãy xem Parsing a string into a boolean value in PHP.

+0

bất kỳ cách nào để phân tích cú pháp để boolean với php? – Alex

+1

Có, chỉ cần so sánh nó với chuỗi "true" như tôi đã làm. –

6

Khách hàng bên:

$.cookie('ff', "true", { expires: 30, path: '/' }); 

Server side:

$cookie = $this->input->cookie() == "true"; 

EDIT: Cookies là chuỗi. Mọi thứ được lưu trữ vào cookie sẽ cần được chuyển đổi thành chuỗi. Do đó bạn phải làm chuỗi để chuyển đổi boolean ở phía đọc của nó. Ở trên tôi đã đặt một ví dụ cho PHP (CodeIgniter).

+1

Không thể nói rằng tôi hiểu ý kiến. Có gì sai với câu trả lời này? –

+0

cảm ơn @ MДΓΓ БДLL, tôi đã tự hỏi bản thân mình. Mọi người ít nhất có thể đưa ra lý do cho một cuộc bỏ phiếu xuống: (Tôi cũng rất vui khi biết điều gì sai với nó. –

+0

Tôi đoán họ nghĩ rằng anh ta muốn câu trả lời của phía khách hàng không phải là câu trả lời của 'php'. – gdoron

0

Nếu bạn chỉ muốn sử dụng một cookie là một loại cờ, sau đó chỉ cần kiểm tra xem cookie tồn tại và nếu nó không bạn có thể cho rằng đó là sai:

const isSet = Boolean(cookie.get('my-cookie')) || false 

Bằng cách này bạn don' t thậm chí cần phải lo lắng về giá trị thực tế của cookie và liệu nó có tồn tại hay không.

0

Một cách khác để làm điều này là

var mycookie = !($.cookie("cookiename")=='false') 

Hoặc:

if(!($.cookie("cookiename")=='false')){ 
    //mycode 
} 

Nếu giá trị là 'false' sau đó ($ .cookie ("cookiename") == 'false') sẽ trả về true vì vậy chúng tôi đảo ngược nó bằng cách sử dụng ! trả về false

nếu giá trị không phải là 'false' thì giá trị đó sẽ trả về false để chúng tôi đảo ngược giá trị bằng cách sử dụng ! trả về false

Các vấn đề liên quan