我有一张表单需要验证,但我无法弄清楚如何对控制器进行编码,以便在第一次显示页面时正常工作。这里是我的代码(简化):
function index()
$data['somedata'] = $this->input->post('somedata');
$this->form_validation->set_rules('event', 'Event', 'trim|required|alpha_numeric');
... more set_rules ...
if($this->form_validation->run() == FALSE)
{
// Hasn't been run or there are validation errors
$this->load->view('eventview', $data);
}
else
{
// Process the event
}
}
的问题是,form_validation->的run()决不会为假,因为$ _POST数组包含从所使用的这种第二种形式以前的表单数据。在form_validation-> run()函数的最开始是以下代码:
// Do we even have any data to process? Mm?
if (count($_POST) == 0)
{
return FALSE;
}
由于$ _POST数据存在的计数总是大于零,这导致在验证要在初始页面加载处理。 有关我如何解决此问题的任何建议?
您可以在当前发布的数据中使用某些触发器来启动表单验证,但请注意,下一个POST请求不会包含先前表单中的数据,除非您将其发送到幕后。 –