我正在我的 CodeIgniter 项目中创建一个搜索页面。 提交时,表单调用 Controller 函数,通过模型函数获取数据并将结果数组传递给 View
问题是,当我刷新结果页面时,表单正在重新提交,因为 $_POST 数据仍然存在于请求 header 中。 我怎样才能避免重新提交确认消息
以下是我的表单代码:
<!--form-->
<form id="find" action="<?php echo base_url()?>search/find" method="post">
<input type="text" name="search_key" class="tb4" id="search_key" placeholder="Search here"/>
<input type="button" value="search"/>
</form>
以下是我的 Controller 的代码:
/*
* function for fetching search results
* @param void
* @return void
*/
public function find()
{
$data['search_result']=$this->search_model->search($this->input->post('search_key'));
$this->load->view('template/header');
$this->load->view('pages/search_result',$data);
$this->load->view('template/footer');
}
请帮我解决这个问题。我不能使用重定向而不是加载 View ,因为我必须将结果数组 $data 传递给 View 。
最佳答案
尝试重定向到自身
public function find()
{
$data['search_result']=$this->search_model->search($this->input->post('search_key'));
if($this->input->post('search_key')) {
redirect('yourcontroller/find');
}
$this->load->view('template/header');
$this->load->view('pages/search_result',$data);
$this->load->view('template/footer');
}
关于PHP代码点火器;防止表单重新提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20698611/