我發現CodeIgniter表單驗證顯示帶有load-> view方法的錯誤消息,並且如果使用「重定向」將會丟失字段錯誤消息。如何在CodeIgniter的不同函數中將post-method表單提交給相同的get-url?
目前我使用一個函數來顯示錶單頁面,另一個函數來處理表單發佈。
class Users extends CI_Controller { function __construct() { parent::__construct(); } public function sign_up() { $this->load->view('users/sign_up'); } public function do_sign_up(){ $this->form_validation->set_rules('user_login', 'User Name', 'trim|required|is_unique[users.login]'); $this->form_validation->set_rules('user_email', 'Email', 'trim|required|valid_email|is_unique[users.email]'); if ($this->form_validation->run() == FALSE) { $this->load->view('users/sign_up'); }else { // save post user data to users table redirect_to("users/sign_in"); }
當表單驗證失敗,網址在瀏覽器將變更爲「/用戶/ do_sign_up」,我想保持相同的URL在sign_up頁。
在表單驗證失敗時使用重定向(「users/sign_up」)方法將保持相同的url,但驗證錯誤消息將丟失。
Rails中,我不能使用路由的配置是這樣的:
get "users/sign_up" => "users#signup" post "users/sign_up" => "users#do_signup"
這看起來不錯。沒有這樣想過。 – Mischa 2012-02-18 15:51:56