提交后的codeigniter如果刷新再次提交

时间:2012-11-01 18:51:37

标签: php codeigniter

这很简单我想但我是codeigniter的新手,所以请帮忙。我有一个表单页面,它接收数据,并在提交时将数据存储在数据库中。然后我尝试了两种方法重定向回主页:

first: $this->load->view('home');

second: redirect('/login/form/', 'refresh');

他们成功重定向或加载主页,但url仍为/ property / new_property,这是数据输入的视图。当我点击主页上带有url的刷新时,如上所述,重新提交数据,因此数据库中有多个记录。如何重定向到home并创建url property / home?

由于

3 个答案:

答案 0 :(得分:1)

$this->session->set_flashdata('message', 'New Post has been added'); {
{1}}
保存成功后set_flashdata会帮助您销毁提交的数据,重定向会更改您的网址。

答案 1 :(得分:0)

你需要使用url helper

redirect('/home') 

这是在CI处重定向的正确方法。 http://ellislab.com/codeigniter/user_guide/helpers/url_helper.html

  • 第二个参数。不是100%必需

要加载该帮助程序,您可以使用$this->load->helper('url'); 或者将它写在配置文件夹中的autoload.php中(这样它将被加载到所有页面)。

例如,这是我网站上的一个简单的submition页面。

public function save_tips(){
    if($this->input->post('save_tips')){
        //Form validation and contact with model
        $res = $this->model->save_tips();
        if(count($res['errors'])==0){ //no errors means success
            redirect('/my_tips');
        } else{
        $errors = $res['errors'];
        }
    }

    $data = array();

    if(isset($errors)) {
        $data["errors"] = $errors;
    }

    $this->load->view('save_tips',$data);
}

答案 2 :(得分:0)

$this->load->view()只会加载视图,而网址不会更改。 当您使用redirect()时,它会重定向到其他网页,您的网址也会发生变化。

对于您的解决方案您可以在插入之前选择要在模型中插入的数据,如果存在,则不要运行插入查询,只需重定向到其他页面。