1

我正在验证由第三个 URL 段生成的许多视图上的表单。

网址:http ://example.com/listings/item/12 (12会根据item而变化

我的两个函数都在下面,我的问题是,当验证失败时,如何用第三段刷新页面并显示验证错误?

PS:我已经尝试过 redirect() 但验证错误不会保留。

谢谢你。


这是“项目”功能

    public function item()
{

    if ($this->session->userdata('is_logged_in'))
    {
        $id = $this->uri->segment(3);
        $this->load->model('listings_model');

        if ($data['things']= $this->listings_model->get_item($id))
        {
            $this->load->view('list/item_view',$data);
        }
    }
    else
    {
         $this->unauth();
    }
}


这是我的验证

    public function get_email()
{

    $this->load->library('form_validation');


        $this->form_validation->set_rules('captcha', 'Captcha', 'required|trim|callback_check_captcha' );


        if ($this->form_validation->run() == FALSE)
        {
           $this->item();
        }
        else
        {
            $this->load->model('listings_model');

            if ($this->listings_model->update_listing())
            {
                echo "Good";
            }

        }
}
4

2 回答 2

1

发生错误时,您可以使用以下代码重定向到您的页面。发生错误时,您可以将其放入控制器中。

redirect('listings/item/12/error_message_goes_here', 'location');
exit;

在您看来,检查天气第四个参数是否存在。如果第四个存在则显示错误

if(!empty($this->uri->segment(4))){

   $this->output->set_output($this->uri->segment(4));

}

所以你的重点是:你重定向并在你的重定向中传递错误消息,然后在查看是否存在错误消息时显示它。

于 2013-03-23T10:26:31.033 回答
0

您可以通过设置表单操作属性来设置 uri 段。

form_open("controller/method/segments/to/retain", array('method' => 'post'));
于 2018-11-23T02:40:34.670 回答