驗證失敗後,我的表單重新填充問題。問題是我的網址包含一個額外的URI,我可以通過點擊鏈接進入。這是什麼樣子:如何在表單驗證之後重新填充表單並保留URI?
http://www.example.com/admin/trivia/add/5
起初麻煩的是,URI的段4完全消失,所以即使驗證錯誤顯示和形式重新填充,我失去了我添加的URI。
然後我在另外一個問題發現,解決辦法是設置形式開這樣的:
echo form_open(current_url());
問題是現在沒有顯示任何的驗證錯誤和形態沒有重新填充。有沒有辦法做到這一點?
這是我的控制器是什麼樣子:
function add()
{
$data = array('id' => $this->uri->segment(4));
if($_POST)
{
$this->_processForm();
}
$this->load->view('admin/trivia_form', $data);
}
而且裏面_processForm()我得到了所有的驗證規則,錯誤消息,並且在成功的情況下重定向。
[編輯]這裏是我的_processForm():
function _processForm()
{
$this->load->library('form_validation');
//validation rules go here
//validation error messages
$this->form_validation->set_rules($rules);
$this->form_validation->set_error_delimiters('<div style="color:red">', '</div>');
if ($this->form_validation->run())
{
//get input from form and assign it to array
//save data in DB with model
if($this->madmin->save_trivia($fields))
{
//if save is correct, then redirect
}
else
{
//if not show errors, no redirecting.
}
}//end if validation
}
你的意思是我的form_validation-> run()應該在if裏面嗎?因爲我已經有了這樣的東西,我會更新我的問題,向您展示我的控制器。 – Ant100
@ Ant100是的。在if條件內。如果驗證失敗,則不應該重定向。別管它吧。所以當前的代碼將加載視圖的值。 –
它不工作:( – Ant100