2012-03-17 3 views
8

Я использую этот плагин jquery.cookie, и мне нужно установить значение TRUE или NULL/FALSE.jquery cookie значение set для boolean true

Я пытаюсь сделать это следующим образом: $.cookie('ff', true, { expires: 30, path: '/' });, но он устанавливает значение в строку, а не в буле.

Любые способы крепления этого устройства?

+5

Да, проанализируйте строку «true» до логического значения, когда вы ее прочитаете. – gdoron

+1

Насколько я знаю, все, что хранится в файлах cookie, является строкой, потому что сами файлы cookie являются строками. Так что любое исправление будет на стороне чтения файлов cookie. –

+0

Дело в том, что я читаю его с помощью функции '$ this-> input-> cookie();' 'codeigniter, имеет ли php какую-либо функцию для этого? – Alex

ответ

13

Файлы cookie являются только знаменательными. Как gdoron commented, если вы хотите обработать значение как логическое, вам нужно проанализировать его обратно на логическое значение, когда значение cookie будет считано обратно.

Поскольку вы прокомментировали, что вы читаете значение cookie с помощью PHP, см. Parsing a string into a boolean value in PHP.

+0

любой способ синтаксического анализа boolean с php? – Alex

+1

Да, просто сравните его со строкой «true», как я. –

6

стороне клиента:

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

стороне сервера:

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

EDIT: Cookies представляют собой строки. Все, что хранится в файлах cookie, необходимо преобразовать в строки. Следовательно, вы должны сделать строку для логического преобразования на стороне чтения. Выше я привел пример для PHP (CodeIgniter).

+1

Не могу сказать, что я понимаю нижний план. Что случилось с этим ответом? –

+0

спасибо @ MДΓΓ БДЛЛ, я задавался вопросом о себе. Люди могут хотя бы дать повод для голосования :(Я был бы рад узнать, что с ним не так. –

+0

Я думаю, они думают, что он хочет, чтобы клиентская сторона ответила не на 'php'. – gdoron

0

Если вы просто хотите использовать печенье в качестве своего рода флаг, а затем просто проверить, если печенье существует, и если это не вы можете предположить, что это неверно:

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

Таким образом, вы не» t нужно даже беспокоиться о фактической ценности файла cookie и просто независимо от того, существует ли он.

0

Другой способ сделать это

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

Или:

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

Если значение 'ложь', то ($ .cookie ("cookiename") == 'ложь') вернет true, поэтому мы инвертируем его с помощью !, которые возвращают false

Если значение не является «ложным», оно возвращает false, поэтому мы инвертируем его с помощью !, которые возвращают false

Смежные вопросы