2011-11-24 78 views
0

之間餅乾的工作我保存的Cookie,PHP:使用jQuery和PHP

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

正如你可以看到,它不是一般的cookie的值,因爲它是一個數組。這有助於我稍後對值進行排序()或ksort()。

用戶還有一個「清單」按鈕,它調用一個javascript函數。在這裏面,我用:

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

但它不工作,因爲餅乾很可能被保存爲:

  • 名[1234567890]
  • 名[1254567999]

等...

jQuery:如何刪除所有coo以「名字」開頭的凱斯?

回答

1

您可以通過所有Cookie

需要循環
var pairs = document.cookie.split(";"); 
for (var i=0; i<pairs.length; i++){ 
    var pair = pairs[i].split("="); 
    if(pair[0].indexOf('name[')==0) $.cookie(pair[0],null,{expires:-1,path:'/'}); 
} 
+0

的偉大工程!只是一個小錯誤(我仍然無法修復)。我接受這對成對價值:「名稱[120] = ari」,「名稱[122] = ari」,「名稱[123] =約翰」等。在cookie名稱之前的空格字符是有點影響。 indexOf方法。爲什麼那裏有空間,我怎麼能輕易擺脫它? – andufo

+0

該概念有效,但似乎jquery cookie插件不能刪除包含數組值的cookie:s – andufo

+0

您可以使用純JS功能刪除cookie,其中大部分都在谷歌上。如果空間位於每個名稱的前面,只需更改indexOf()== 1或> -1,但第二個解決方案的安全性稍差(它也會刪除名稱爲「surname [31]」的cookie)。 – Thinker

0

嘗試是這樣的:

$.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:'/'}); 
});