如何通过redirect()传递验证错误数据?

时间:2011-10-28 20:44:19

标签: codeigniter codeigniter-2

我有一个包含表单的页面,当任何用户提交表单时,数据会转到控制器,控制器会检查验证,如果有任何错误,它会将用户重定向到上一页(包含该页面的页面)形式),否则它将数据发送到模型。

要从控制器重定向到上一页(如果有任何验证错误),我有以下代码

        redirect($this->input->post('redirect'));

上面的代码工作正常,但问题是在将用户重定向到上一页(包含表单的页面)后,它没有显示验证错误。

那么请您告诉我如何通过我在上面发布的“重定向”代码传递验证错误信息并在该页面上显示验证错误消息?

提前致谢:)

解决方案:

在我的控制器中:

   $redirect=$this->input->post('redirect'); //  << for this I have- <input name="redirect" type="hidden" value="<?= $this->uri->uri_string() ?>" />         in my view file

   $this->session->set_flashdata('errors', validation_errors());
   redirect($this->input->post('redirect')); 

在我的视图文件中:

   <?php

    if ($this->session->flashdata('errors')){ //change!
    echo "<div class='error'>";
    echo $this->session->flashdata('errors');
    echo "</div>";
    }

    ?>

因此,我可以通过从控制器重定向到上一页

来传递验证错误数据

1 个答案:

答案 0 :(得分:11)

您可以尝试CI会话库中的flashdata。它使数据可用于下一个服务器请求。

$this->session->set_flashdata('errors', validation_errors());

redirect($this->input->post('redirect'));