Encontré la validación de formulario de CodeIgniter para mostrar un mensaje de error con el método load-> view, y perderá el mensaje de error de campo si usa "redirect".¿Cómo enviar un formulario post-método al mismo get-url en función diferente en CodeIgniter?
Actualmente utilizo una función para mostrar la página del formulario y otra para tratar la publicación del formulario.
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"); }
Cuando la validación de formularios falló, url en el navegador será cambiado a "/ usuarios/do_sign_up", quiero seguir en la misma dirección URL página sign_up.
Utilizar el método de redirección ("users/sign_up") en la validación de formulario no se mantendrá la misma url, pero se perderá el mensaje de error de validación.
en Rails, no puedo utilizar rutas en las configuraciones de esta manera:
get "users/sign_up" => "users#signup" post "users/sign_up" => "users#do_signup"
Esto se ve bien. No lo había pensado así. – Mischa