jQuery cookie установить значение boolean true
Я использую этот С помощью jQuery.куки плагин, и мне нужно установить значение TRUE или NULL/FALSE.
Я пытаюсь сделать это так: $.cookie('ff', true, { expires: 30, path: '/' });
но он устанавливает значение string, а не boolean.
любые способы исправить это?
4 ответов
Cookies имеют только строковое значение. As gdoron комментарием, Если вы хотите рассматривать значение как логическое, вам нужно проанализировать его обратно в логическое, когда значение cookie считывается обратно.
поскольку вы прокомментировали, что читаете значение cookie с помощью PHP, см. разбор строки на логическое значение в PHP.
клиентской стороне:
$.cookie('ff', "true", { expires: 30, path: '/' });
сервер:
$cookie = $this->input->cookie() == "true";
EDIT: Cookies-это строки. Все, что хранится в cookies, должно быть преобразовано в строки. Следовательно, вам нужно сделать преобразование строки в логическое на стороне чтения. Выше я привел пример для PHP (CodeIgniter).
Если вы просто хотите использовать cookie как своего рода флаг, просто проверьте, существует ли cookie, и если это не так, вы можете предположить, что это false:
const isSet = Boolean(cookie.get('my-cookie')) || false
таким образом, вам не нужно даже беспокоиться о фактическом значении файла cookie и просто о том, существует ли он.
другой способ сделать это
var mycookie = !($.cookie("cookiename")=='false')
или:
if(!($.cookie("cookiename")=='false')){
//mycode
}
Если значение "false", то ($.cookie ("cookiename")== 'false') вернет true, поэтому мы инвертируем его с помощью ! которые возвращают false
если значение не "false", то оно вернет false, поэтому мы инвертируем его с помощью ! которые возвращают false