【问题标题】:CodeIgniter - save method and redirectsCodeIgniter - 保存方法和重定向
【发布时间】:2020-07-06 22:52:10
【问题描述】:

我有一个管理课程的页面,使用 CI 3 构建。当用户点击保存按钮时,表单将提交给 save 方法。我的问题是如何将用户重定向到上一页,并使用插入的数据填充表单?

目前发生的情况是,提交后,save 方法会加载 /new 页面的视图,并且 URL 保持为 /save 并填充数据。

已经尝试过重定向,但它丢失了用户插入的数据。

这里是我的保存方法的sn-p:

public function save()
{
    $this->checkIsAdmin();
    $this->load->helper('form');
    $this->load->library('form_validation');

    $this->form_validation->set_rules('name', $this->lang->line('common_name'), 'required');
    if ($this->form_validation->run() === FALSE)
    {
        $this->feedback_message->create('Please check fields', 'error');
        $this->baseInfo['page_title'] =  "Registar novo curso";
        $this->mybreadcrumb->add('Registar curso', base_url('course/new'));
        $data['schools'] = $this->School_model->listSchools();

        $this->load->view('web/top', $this->baseInfo);
        $this->load->view($this->templatesFolder.'tabs_start', array('courseId' => 0));
        $this->load->view($this->templatesFolder.'manage', $data);
        $this->load->view($this->templatesFolder.'tabs_end');
        $this->load->view('web/footer');

        /*redirect("/course/new", "location");*/
    }else{
        $saved = $this->Course_model->saveCourse();
        if($saved){
            $this->feedback_message->create('Success', 'success');
        }else{
            $this->feedback_message->create('Error '.$_POST['name'], 'error');
        }
        redirect('course/');
    }
}

【问题讨论】:

  • 您阅读了吗:Re-populating the form?它解释了如何使用提交的数据重新填充表单字段...
  • 正在重新填充 for。那不是我的问题。问题是如何在保存功能中将用户重定向到表单,而不会丢失数据。如果我使用重定向,那么我会丢失数据。如果我加载视图,那么我会在表单中提供 /save url。我真正想要的是,在保存方法上验证表单。如果有效,插入数据库并重定向。那工作正常。如果没有,那么我希望用户使用已填充的数据重定向到 /new 视图。
  • 重新填充表单是在解释如何重新填充表单,但表单是在同一个 url/function 上,而不是在处理逻辑的函数上

标签: forms codeigniter validation


【解决方案1】:

要重新填充表单,您必须在 input 字段中使用 set_value('field_name') 函数,如下所示:

<input type="text" name="name" value="<?php echo set_value('name'); ?>" />

将上一个视图返回为:

$this->load->view('view_name',$All_Data_For_View);

如果你不明白,请再次阅读 CI form validation

【讨论】:

  • 第一部分还可以。第二个将导致在保存功能上加载表单,从而产生一个填充表单的 url /save。我想要的是,在保存功能上,如果表单无效,请将用户重定向到填充表单的 /new 视图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-08
  • 2015-02-28
  • 2016-04-20
  • 2012-12-27
  • 2012-01-29
  • 2013-06-16
  • 1970-01-01
相关资源
最近更新 更多