jQueryとPHPの間のクッキーの操作

私はPHPでクッキーを保存します:

setcookie('name['.time().']','Andres',time()+86400,'/');

ご覧のように、それは配列なので通常のクッキー値ではありません。それは後で値をsort()またはksort()するのに役立ちます。

ユーザーには、javascript関数を呼び出す「クリアリスト」ボタンもあります。その中で私は以下を使用します:

$.cookie('name',null,{expires:-1,path:'/'});

しかし、クッキーはおそらく以下のように保存されているので動作しません。

  • 名前[1234567890]
  • 名前[1254567999]

等...

jQuery: How can I delete all cookies that start with "name"?

0

2 答え

すべてのクッキーをループする必要があります

var pairs = document.cookie.split(";");
for (var i=0; i
1
追加された
よく働く!小さなバグ(私はまだ修正できません)。私はこの値をペアで受け取っています: "name [120] = ari"、 "name [122] = ari"、 "name [123] = john"など。 indexOfメソッド。なぜそこにスペースがあり、どうすれば簡単に取り除くことができますか?
追加された 著者 andufo,
コンセプトは機能しますが、jquery Cookieプラグインは配列の値を保持するCookieを削除できません。
追加された 著者 andufo,
私はあなたの解決策がクッキーを見つけるという面で機能することを意味しました。しかし、いくつかのテストの後、私は配列を持つクッキーを削除することができません。例えば、これは動作します:$ .cookie( 'some_cookie'、null、{expires:-1、path: '/'});これは動作しません:$ .cookie( 'name [122]'、null、{expires:-1、path: '/'});
追加された 著者 andufo,
あなたは純粋なJS機能を持つクッキーを削除することができます、それらの多くはGoogle上にあります。スペースがすべての名前の前にある場合は、indexOf()== 1または> -1を変更します。ただし、2番目のソリューションのセキュリティはあまり強くありません( 'surname [31]'などの名前のCookieも削除されます)。
追加された 著者 Thinker,

次のようなことを試してください:

$.each(document.cookie.split(/; */), function(cookieString)  {
  var splitCookie = cookieString.split('=');
 //name is splitCookie[0], value is splitCookie[1]
  if(splitCookie[0].indexOf('name[')==0)
    $.cookie(splitCookie[0], null, {expires:-1,path:'/'});
});
0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com

JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript