0

jqueryが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があるかどうかを確認させることができないようです。

これは、配列に個々のCookieを追加するコードです。

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

どんな助けでもいただければ幸いです!

4

2 に答える 2

2

現在行っていることは、名前付きの Cookie を設定することですreport[146]['+thisID+'](たとえば、 thisID =135の場合、Cookie 名は ですreport[146][135])。Cookie の値は配列ではありません。その Cookie の値は の値ですthisID

Cookie に名前reportを付け、その値をインデックス 146 に valuethisIDを持つ配列にする場合は、次のようにします。

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];
}
于 2012-09-10T06:41:17.780 に答える
2
if($.cookie('report') == null) { 
    alert('no cookie!');
}
于 2012-09-10T06:06:22.243 に答える