2013-07-10 43 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