比如現在有一個 login 方法,是用來輸出 login 視圖
public function login(){ $this->load->view('login');}
此時的登陸頁面是 index/login
。
然後提交表單資料到 login_check()
方法
public function login_check(){ $this->form_validation->set_rules('email', 'email', 'trim|required|valid_email'); $this->form_validation->set_rules('password', 'password', 'trim|required'); if ($this->form_validation->run() === true) { //..... }else{ $this->load->view('login'); }}
$this->form_validation->run()
表單校正失敗,再次輸出 login 視圖,同時顯示提示錯誤。
那麼此時登陸頁面地址 index/login_check
。
這個感覺太不好了,不希望連結地址變化。除了將 login()
和 login_check()
合并處理可以實現之外,還有什麼更好的辦法嗎?
請多指教,謝謝大家。
回複內容:
比如現在有一個 login 方法,是用來輸出 login 視圖
public function login(){ $this->load->view('login');}
此時的登陸頁面是 index/login
。
然後提交表單資料到 login_check()
方法
public function login_check(){ $this->form_validation->set_rules('email', 'email', 'trim|required|valid_email'); $this->form_validation->set_rules('password', 'password', 'trim|required'); if ($this->form_validation->run() === true) { //..... }else{ $this->load->view('login'); }}
$this->form_validation->run()
表單校正失敗,再次輸出 login 視圖,同時顯示提示錯誤。
那麼此時登陸頁面地址 index/login_check
。
這個感覺太不好了,不希望連結地址變化。除了將 login()
和 login_check()
合并處理可以實現之外,還有什麼更好的辦法嗎?
請多指教,謝謝大家。
你用ajax提交表單就好了, 這樣不會導致頁面跳轉到login_check
驗證失敗就跳轉到login?error=err_code
CI裡面使用redirect('index/login')
這個函數進行跳轉
在你的else
裡使用
想優雅的解決這個問題,需要用到路由,
判斷 http
動詞,映射到相應方法即可