2012-03-17 11 views
8

Estoy usando este complemento jquery.cookie y necesito establecer el valor en TRUE o NULL/FALSE.cookie jquery establecer valor en booleano true

Estoy tratando de hacerlo así: $.cookie('ff', true, { expires: 30, path: '/' }); pero establece el valor en cadena y no en booleano.

¿Alguna manera de arreglar esto?

+5

Sí, analiza la cadena "verdadera" a booleana cuando la lees. – gdoron

+1

Hasta donde yo sé, cualquier cosa almacenada en las cookies es una cadena, porque las mismas cookies son cadenas. Entonces, cualquier tipo de corrección estaría en el lado de lectura de la galleta. –

+0

Lo que pasa es que lo estoy leyendo con la función codeigniter '$ this-> input-> cookie();', php tiene alguna función para hacerlo? – Alex

Respuesta

13

Las cookies solo tienen valor de cadena. Como gdoron commented, si desea tratar el valor como un valor booleano, debe analizarlo de nuevo a un valor booleano cuando se vuelva a leer el valor de la cookie.

Como ha comentado que está leyendo el valor de la cookie con PHP, consulte Parsing a string into a boolean value in PHP.

+0

cualquier forma de analizar a boolean con php? – Alex

+1

Sí, simplemente compárelo con la cadena "verdadera" que tengo. –

6

lado del cliente:

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

lado del servidor:

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

EDIT: Las cookies son cadenas. Cualquier cosa almacenada en las cookies tendrá que convertirse en cadenas. Por lo tanto, debe realizar la cadena a la conversión booleana en el lado de lectura de la misma. Arriba he puesto un ejemplo para PHP (CodeIgniter).

+1

No puedo decir que entiendo el voto a la baja. ¿Qué pasa con esta respuesta? –

+0

gracias @ MДΓΓ БДLL, me preguntaba. La gente podría al menos dar una razón para un voto negativo :(. Me alegraría saber qué está mal con eso también. –

+0

Supongo que ellos piensan que él quiere que la respuesta del cliente no sea 'php'. – gdoron

0

Si estás en busca de utilizar una cookie como una especie de bandera, a continuación, sólo comprobar si existe la cookie y si no se puede asumir que es falso:

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

De esta manera usted don' Necesito incluso preocuparme por el valor real de la cookie y si existe o no.

0

Otra manera de hacer esto es

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

O:

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

Si el valor es 'falso' a continuación ($ .cookie ("cookiename") == 'falso') devolverá verdadero así que lo invertimos usando ! que devuelve falso

si el valor no es 'falso', entonces devolverá falso así que lo invertimos usando ! que devuelve falso

Cuestiones relacionadas