problemas al utilizar jsvalidation en vistas

edited marzo 2009 in Principiantes
Buen día, estoy tratando de hacer una aplicación web y para logearme creé un controlador llamado login_controller heredando la clase ApplicationController, en el index de la carpeta login (ubicada en views) que creé para esta operación (me basé en el videotutorial de la tienda) recibo una respuesta en caso de que el usuario no exista a nivel de BD. Hasta ahí todo perfecto, resulta que quiero hacer una validación para que los campos del formulario no se envien vacios, para esto utilicé una libreria que descargué por la web que se llama jsvalidation.

Cuando traté de implementarla con el codigo phtml y su sintaxis no me funcionó, por lo tanto me toco modificar el fuente de index.phtml (como el del video tutorial) y escribir en este solo código html logrando que así me funcionara. La alegría me invadió a ver mi formulario validado con javascript y utilizando los efectos de scriptaculous, pero ahí empezaron los problemas funcionales:

en el form tengo como action=”login/inicio_sesion”::Estoy llamando al método inicio_sesion de la clase LoginController

Cuando envio el submit del form con algún campo vacio me valida bien y no me deja enviar la petición, pero cuando envio login y password que no existen en la BD, en la vista me muestra el mensaje de la clase Flash que llama al método estático error y me dice usuario/password inválido, creo que es claro para ustedes esto. En ese preciso instante cuando intento enviar datos de nuevo desde mi flamante formulario validado con javascript en la url de mi navegador se le adunta la cadena login/inicio_sesion a la url ya existente y queda así:

<!-- m --><a class="postlink" href="http://localhost/cluster0.8/login/login/inicio_sesion">http://localhost/cluster0.8/login/login/inicio_sesion</a><!-- m --> lo cual me genera un error porque ese controlador no existe.

Mi pregunta es: Será que existe algún modo en Kumbia de poder validar estos campos de un form en las vistas desde el lado del cliente sin utilizar librerías foráneas?

Para tener que evitarme el tener que escribir todo este carretazo. Estoy seguro que lo hay pero no se como implementarlo, he buscado en el libro pero no encuentro nada que me guie, trabajo con la versión 0.5 y el sistema operativo ubuntu. Gracias por su atención y espero haber sido claro.

Comentarios

  • haz en tu controller cuando falle la autenticacion un return $this->route_to hacia la action index...

    De todas formas pega en kumbia.pastebin.com el codgio del metodo y el form de autenticacion para verlo mejor pero entiendo tu idea
  • edited 7:30
    hola, antes que nada quiero agradecerte por la pronta respuesta. Pues lo del método $this->route_to("action: index"); lo usé desde un principio y el problema siguió. Decidí utilizar una línea despues header('refresh:1; url=http://localhost/cluster0.8/login'); y la "perradita"como dicen en mi tierra funcionó. Obviamente que cuando el sistema este subido en el servidor y en producción debo cambiar el "localhost" por la ip de este. Pero me surge una duda: Si es viable utilizar esta función y no me salgo de las buenas practicas de programación ?

    DI
  • Lo ideal es un route_to, recuerda que si estas enrutando hacia otro controller debes dar el controller, es decir $this->route_to('controller: mi_controller', 'action: mi_action');

    puedes colocar el enlace de esas lib para hacer unas pruebas y decirte como me fue y bueno si funciona comparar que estabas haciendo...
Sign In or Register to comment.