2012-03-17 21 views
8

Sto usando questo jquery.cookie plug-in e ho bisogno di impostare il valore TRUE o NULL/FALSO.jquery valore impostato dei cookie per booleano VERO

che sto cercando di fare in questo modo: $.cookie('ff', true, { expires: 30, path: '/' }); ma imposta il valore di stringa e non booleano.

In che modo è possibile risolvere questo problema?

+5

Sì, analizzare il "vero" stringa boolean quando lo si legge. – gdoron

+1

Per quanto ne so, qualsiasi cosa memorizzata nei cookie è una stringa, perché i cookie stessi sono stringhe. Quindi qualsiasi tipo di correzione sarebbe sul lato di lettura del cookie di esso. –

+0

il fatto è che lo sto leggendo con '$ this-> input-> cookie();' la funzione di codecisione di ', php ha qualche funzione per farlo? – Alex

risposta

13

cookie sono solo stringa di valori. Come gdoron commented, se si desidera trattare il valore come booleano, è necessario analizzarlo su un valore booleano quando viene letto il valore del cookie.

Dal momento che si ha commentato che si sta leggendo il valore del cookie con PHP, vedere Parsing a string into a boolean value in PHP.

+0

un modo per analizzare a booleano con php? – Alex

+1

Sì, basta confrontarlo con la stringa "true" come ho fatto io. –

6

lato client:

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

lato server:

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

EDIT: I cookie sono stringhe. Tutto ciò che è memorizzato nei cookie dovrà essere convertito in stringhe. Quindi devi fare la stringa per la conversione booleana sul lato di lettura di esso. Sopra ho messo un esempio per PHP (CodeIgniter).

+1

Non posso dire di aver capito il downvote. Cosa c'è di sbagliato in questa risposta? –

+0

grazie @ MДΓΓ БДLL, mi stavo chiedendo da solo. La gente potrebbe almeno dare una ragione per un voto basso :(. Sarei felice di sapere che cosa è sbagliato con esso anche. –

+0

Credo che pensano che vuole lato client risposta non un 'php' uno. – gdoron

0

Se siete solo in cerca di utilizzare un cookie come una sorta di bandiera, quindi basta controllare se esiste il cookie e se non si può presumere è falso:

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

In questo modo si don' È necessario anche preoccuparsi del valore reale del cookie e solo se esiste o meno.

0

Un altro modo per fare questo è

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

Oppure:

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

Se il valore è 'falsa' poi ($ .cookie ("cookiename") == 'false') restituirà true, quindi lo invertiamo usando ! che restituisce false

se il valore non è 'falso', quindi restituirà falso, quindi lo invertiamo utilizzando ! che return false

Problemi correlati