JQuery Cookie установить булево значение true - PullRequest
9 голосов
/ 17 марта 2012

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

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

Есть ли способы исправить это?

Ответы [ 4 ]

15 голосов
/ 17 марта 2012

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

6 голосов
/ 17 марта 2012

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

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

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

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

РЕДАКТИРОВАТЬ: Cookies - это строки.Все, что хранится в файлах cookie, необходимо преобразовать в строки.Следовательно, вы должны выполнить преобразование строки в логическое на стороне чтения.Выше я привел пример для PHP (CodeIgniter).

0 голосов
/ 09 марта 2018

Еще один способ сделать это -

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

Или:

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

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

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

0 голосов
/ 14 февраля 2018

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

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

Таким образом, вам даже не нужно беспокоиться о фактическом значении куки-файла и о том, существует он или нет.

...