2012-09-10 47 views
0

我想知道jQuery是否可以检查cookie数组是否存在是否可能。检查是否存在jQuery Cookie数组

我的cookie的名称是“报告”,并与PHP的我赞同它是这样的:

echo '<pre>'; print_r($_COOKIE['report'][146]); echo '</pre>'; 

哪个吐出了这样的事情:

Array 
(
    [15128] => 15128 
    [13670] => 13670 
) 

这是我希望能得到jquery检查上面的cookie数组是否存在(或不),这是我到目前为止,但它不拾起cookie数组。

if ($.cookie('report[146]')) { 
    window.location = 'http://www.myurl.com/'; 
} else { 
    alert('Please make a selection.'); 
} 

当有人勾选一个复选框时,我的表单不会刷新,但它使用jquery添加cookie(它工作正常),但我似乎无法让jquery检查是否有任何cookie。

这是它增加了个别饼干数组代码:

if ($(this).attr('checked')) { 
    $.cookie('report[146]['+thisID+']', thisID, { expires: 7, path: '/' }); 
} else { 
    $.cookie('report[146]['+thisID+']', thisID, { expires: -1, path: '/' }); 
}; 

任何帮助,将不胜感激!

回答

2

你现在正在做的是设置cookie将被命名为report[146]['+thisID+'](例如如果thisID = 135,那么Cookie名称为report[146][135])。 cookie的值不是数组,该cookie的值为thisID

如果你想饼干有名字report和它的值应该是数组索引146价值thisID,请执行以下操作:

var cookieValue = []; 
cookieValue[146] = thisID; 

设置它:

$.cookie('report', cookieValue); 

cookie的值会现在被设置为(这是数组序列化的方式):

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,135 

要读取它:

var cookie = $.cookie('report'); 
if(cookie){ 
    var cookieValue = cookie.split(','); //you need to do this since array is serialized as comma separated values. 
    var valueAtIndex146 = cookieValue[146]; 
} 
+0

感谢您的帮助,将重做我的Cookie设置的方式:) –

2
if($.cookie('report') == null) { 
    alert('no cookie!'); 
} 
+0

即使我已经做出选择,它也会出现为空。如果我刷新页面我的cookie被存储,但我想让jquery检查cookie数组而不刷新页面。 –