PHP代码点火器;防止表单重新提交

标签 php forms codeigniter redirect

我正在我的 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/

相关文章:

html - 当背景颜色应用于父元素时,CSS 开关输入文本不可见

php - 如何将重试的数据库数据传递到另一个页面?

python - django 创建自定义表单

php - 使用数据表列出 select/selectall 行以通过脚本选择行,那么我如何设置/获取所选行的动态 ID

php - 如何使用 php Codeigniter 在 View 文件夹的主文件中包含头文件?

string - PHP heredoc 解析错误

php - php/mysql中处理大量数据

php - 如何从 etrepat/baum laravel 包导出 jstree 所需的 json 格式

javascript - Bootstrap 可忽略的成功消息使用 ajax 时不会显示更长的时间

javascript - Codeigniter jquery 在 AJAX 文件上传中不起作用