2

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

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

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

他们成功重定向或加载主页,但 url 仍然是 /property/new_property,这是数据输入的视图。同样,当我在主页上单击带有上述 url 的刷新时,会重新提交数据,因此数据库中有多个记录。如何重定向到主页并设置 url 属性/主页?

谢谢

4

3 回答 3

1

$this->session->set_flashdata('message', 'New Post has been added');
redirect('somefunction', 'refresh')
保存成功后的set_flashdata将帮助您销毁提交的数据,重定向将更改您的 url。

于 2014-02-02T23:51:14.520 回答
0

$this->load->view()只会加载视图并且 url 不会改变。当您使用redirect()它时,它会重定向到不同的页面,并且您的 url 会改变。

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

于 2012-11-02T20:11:57.007 回答
0

您需要使用 url 助手

redirect('/home') 

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

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

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

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

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);
}
于 2012-11-01T18:53:33.617 回答