0

我正在使用codeigniter并有一个控制器,我在其中分配一些搜索条件以存储在会话中,如下所示:

$srchCriteria = array(
'stockCode'=>$this->input->post('srchScode'),
'qty'=>$this->input->post('srchQty'),                           
'class' => $this->router->fetch_class(),
'method' => $this->router->fetch_method(),
);
$this->session->set_userdata('srchCriteria',$srchCriteria);    

并基于此标准生成输出。现在,如果用户导航到此页面以外的另一个页面,我需要清除此条件。即每次用户访问搜索页面时,搜索条件都应该被清除,除了分页。为此,我检查了核心控制器中的类和方法变量,如下所示:

$srchCriteria  = $this->session->userdata('srchCriteria');      
$className = $this->router->fetch_class();
$methodName = $this->router->fetch_method(); 

if(!empty( $srchCriteria['class']  ) && !empty( $srchCriteria['method'] )){
    if( ($srchCriteria['method'] != $methodName){               
      $this->session->set_userdata('srchCriteria',array());
    }
}

但它不起作用,请以正确的方式指导我。我的错误是什么?

4

1 回答 1

0

尝试$this->session->unset_userdata('srchCriteria');代替$this->session->set_userdata('srchCriteria',array());

于 2012-08-13T07:23:46.053 回答