我正在验证由第三个URL段生成的许多视图上的表单。
网址:http://example.com/listings/item/12( 12将根据项目进行更改)
我的两个功能都在下面,我的问题是,当验证失败时如何刷新第3段的页面并显示验证错误?
P.S:我已经尝试过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";
}
}
}
答案 0 :(得分: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));
}
所以你的重点是:你重定向并在重定向中传递错误信息,然后在视图中如果存在错误信息则显示它。
答案 1 :(得分:0)
您可以通过设置表单操作属性来设置uri细分。
form_open("controller/method/segments/to/retain", array('method' => 'post'));