處理表單提交請告訴我來處理笨以下情況的最好辦法:笨 - 從不同的控制器動作
首頁控制器具有指標作用,並提交操作。
提交操作用於表單提交。我想通過索引控制器加載頁面 - 包括表單提交後,即表單錯誤數據重新填寫表單輸入錯誤等。
什麼是最好的方式做到這一點 - 沒有索引控制器處理主頁面加載和表單提交。
處理表單提交請告訴我來處理笨以下情況的最好辦法:笨 - 從不同的控制器動作
首頁控制器具有指標作用,並提交操作。
提交操作用於表單提交。我想通過索引控制器加載頁面 - 包括表單提交後,即表單錯誤數據重新填寫表單輸入錯誤等。
什麼是最好的方式做到這一點 - 沒有索引控制器處理主頁面加載和表單提交。
如果你redirect()
,你將無法使用set_value()
重新填充你的表單域。
最簡單的是讓您的索引控制器處理默認加載行爲和提交。
function index()
{
if($this->input->post('foo'))
{ // something was POSTed
$this->load->library('form_validation');
//validation rules
} else
{ // normal view
//
}
$this->load->view('home');
}
或者,你可以設置你的index
和submit
控制器,並讓它們指向同一視圖,其檢測是否validation_errors()
設定並相應地重新填充表單字段。
第三個選項(hackish):您可以使用flashdata將提交的錯誤和提交的表單值重定向回索引。像這樣的東西會工作:
$this->session->set_flashdata('errors', $validation_errors());
只需在您提交的行動指向您的形式:
<form method="post" action="/home/submit">
然後,使用submit
行動之前驗證您的輸入回index
行動。
幫了我很多。 – hairynuggets 2011-11-15 13:57:30
所以如果我有一個控制器來處理註冊,我應該有一個if-else在數據發佈的地方,然後處理註冊細節。否則,只需加載註冊表單? – 2013-03-11 06:33:02