我使用笨2.1.4和我都面临着flashdata一些问题。 当我成功提交记录我可以显示flashdata消息。 但是,如果从那里被显示flashdata消息的页面转到其他页面,然后回去用浏览器后退按钮前一页它再次表明我flashdata消息。
如何清除flashdata消息一旦使用它? 我认为它不是flashdata发出的缓存问题。 我很困惑,为什么这种情况正在发生。 如果它的缓存问题,那么如何去除呢?
下面是我所使用的代码,
//In the manage of controller
$this->session->set_flashdata('message', "Record updated successfully.");
// In the view of controller
$data['message'] = $this->session->flashdata('message');
// In the view page
echo $message;
你在控制器代码是正确的
//In the manage of controller
$this->session->set_flashdata('message', "Record updated successfully.");
redirect('controller_name/function_name','refresh');
现在考虑使用这样
if($this->session->flashdata('message')){echo $this->session->flashdata('message');}
希望它会工作
如果要清除set_flash在控制器或其他视图文件,那么你可以使用这个简单的代码。
$this->session->set_flashdata('error', 'User not found...'); //create set_flash
破坏 set_flash
//echo "<pre>"; print_r($_SESSION); die; //for check
if(isset($_SESSION['error'])){
unset($_SESSION['error']);
}
$this->session->set_flashdata('message', "Record updated successfully.");
设置完成后的flashdata重定向到一些功能或相同的功能。
你必须 经过地方的页面重定向 $this->session->set_flash('item','value');
例如 :
if ($this->form_validation->run() == FALSE){
$this->session->set_flashdata('error',validation_errors());
redirect(base_url().'user/login');
}
else{
$this->session->set_flashdata('success','Thank you');
redirect(base_url().'user/login');
}
通常开发商犯了一个错误,当他们将数据提交到同一页面。 他们设定闪光的数据,但忘了重定向。
如果你在同一个控制器功能刷新flashdata不会deleted.Also要在浏览器中来回简化版,影响flashdata。 清除flashdata重定向到另一个控制器功能,它会工作。