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

pcww981p  于 2023-02-20  发布在  其他
关注(0)|答案(4)|浏览(107)

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

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

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

他们成功地重定向或加载主页,但url仍然是/property/new_property,这是数据输入的视图。另外,当我点击刷新主页与url如上所述,数据被重新提交,所以数据库中的多个记录。我如何重定向到主页,并使url属性/主页?
谢谢

nfg76nw0

nfg76nw01#

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

kxkpmulp

kxkpmulp2#

$this->load->view()将只加载视图,url不会更改。当您使用redirect()时,它将重定向到其他页面,您的url将更改。
对于您的解决方案,您可以在插入之前选择要插入到模型中的数据,如果它存在,则不运行插入查询,只需重定向到不同的页面。

jdg4fx2g

jdg4fx2g3#

您需要url帮助程序才能使用

redirect('/home')

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

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

要加载这个助手,你可以使用$this->load->helper('url');,或者把它写在你的autoload.php的config文件夹里(这样它会被加载到所有页面)。
例如,这里是一个简单的提交页面在我的网站。

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);
}
z9ju0rcb

z9ju0rcb4#

我已经面临同样的问题与codeigniter 3.1.7,我只是简单地验证这提交按钮值与名称,例子如下
在可视侧

<input type="submit" value="save" name = "submit">

在控制器侧

if(isset($_POST['submit'])){}

相关问题