2013-07-10 83 views
0

我正在使用codeigniter/grocerycrud,當選擇一個排序列時,它會記住這個命令,給我唯一的選擇來重新排序其他方向(至少在到期日期之內)。我想創建一個按鈕,只刪除與排序相關的cookies。到目前爲止,一個cookie的一個例子是...如何使用PHP或JavaScript刪除特定的Cookie前綴?

hidden_​​sorting_4884b0e57a895f932a0a6f5657128eda

...和所有的餅乾與hidden_sorting_排序開始是很有意義有一個明確的排序按鈕。任何想法,如果這是可能的?對內置功能的深入研究成爲空白。

我可以用jQuery刪除的全名是這樣的...

$.cookie("hidden_sorting_4884b0e57a895f932a0a6f5657128eda", null); 

,但具有與該前綴選擇的麻煩。在jQuery中,你可以做類似...

$('input[products*="hidden_sorting_"]').val 

如果我正在查找輸入,但在cookie中獲取它是我所需要的。

回答

1

嘗試了這一點:

<?php 
session_start(); ob_start(); 
function destroyCookies($prefix){ 
    if(isset($_COOKIE)){ 
    foreach($_COOKIE as $i => $v){ 
     if(preg_match("/^$v/", $prefix)){ 
     setcookie($i, '', time()-3600); unset($_COOKIE[$i]); 
     } 
    } 
    } 
} 
destroyCookies('hidden_sorting_'); 
ob_end_flush(); 
?> 

你將不得不使用ob_start(),使用PHP,以確保您可以隨時設置cookie。

+0

我正在玩耍,沒有去玩。任何想法訪問這種類型的cookie的價值?這很簡單,products_model。每列都有自己的名字。 – Shane

+0

嘗試顯示你的cookies,例如:'implode(';',$ _COOKIE);'看看你是否真的有cookie。 – PHPglue

+0

我確實得到一個列表,如:'1; 100; ASC; products_upc; ; products_model; 1; 50; ASC; price_markup_9; ; ;'... – Shane