Formulario -> Proceso -> Resultado Hola, ¿alguien sabría decirme cómo se puede implementar en Zend Framework la arquitectura clásica de formulario > proceso > resultado (las tres, páginas diferentes) de manera que el formulario reciba los datos necesarios para mostrar posibles errores? Busqué por internet pero 'todo' el mundo hace el proceso en la misma página que el formulario. De esta manera, si el usuario actualiza la página aparece la horrible ventana de 'se van a volver a enviar datos' que no quiero que salga. Gracias. |
Respuesta: Formulario -> Proceso -> Resultado No entiendo muy bien tu problema jerkan, si hay errores en el formulario se renderiza con los errores y en caso de contrario redirigiendo se soluciona tu problema, igualmente podes tener 3 action's diferentes, uno para mostrar el form, otro sin vista para procesar los datos y otro para mostar el resultado. Saludos. |
Respuesta: Formulario -> Proceso -> Resultado Cita:
|
Respuesta: Formulario -> Proceso -> Resultado Envia el post a proceso, en proceso evaluas y bien redirigis a resultado o volves al formulario mostrando los errores. |
Respuesta: Formulario -> Proceso -> Resultado Cita:
|
Respuesta: Formulario -> Proceso -> Resultado Setea los datos y dispara el isValid, esta es la razón por la cual siempre se hace sobre el mismo action, lo que no entiendo es porque no redirigis a resultado cuando todo es correcto y listo, saltar de action en action tiene sentido en un multipage form. |
Respuesta: Formulario -> Proceso -> Resultado Redirigir a 'resultado' no es el problema. O yo no me explico o tu no me entiendes :P |
Respuesta: Formulario -> Proceso -> Resultado Cita:
Voy de nuevo, en proceso si hay errores guarda el post en un Zend_Session_Namespace y en formulario, comproba que exista el namespace, si este existe, llamas a Zend_Form::isValid con los datos del namespace(osea los datos del post). Si no lo ves, te hago un ejemplo basico. Saludos. |
Respuesta: Formulario -> Proceso -> Resultado Pongo un poco de código para ver si así me explico mejor. Código PHP: En el action 'process' es dónde se llama al conocido método isValid. Lo que estoy intentando ahí es guardar los errores en una variable sesión. Luego, en 'sign' le paso al formulario los errores guardados en sesión. Esta aproximación no funciona de igual manera que si tuviera el formulario y el proceso en el mismo action. |
Respuesta: Formulario -> Proceso -> Resultado Ves, con codigo la gente se entiende mejor :-), deberia ser algo asi: Bootstrap.php
Código PHP:
Ver original por recomendacón de Zend, cuando manipulas sesiones, el start debe ir en el bootstrap(para evitar errores) TuController.php
Código PHP:
Ver original que diferencia tenes a hacer algo como esto ?
Código PHP:
Ver original |
Respuesta: Formulario -> Proceso -> Resultado Cita:
|
Respuesta: Formulario -> Proceso -> Resultado Ahora si entendi lo que querias evitar, dios que estoy leeeento :Zzz:, pudiste adaptar el codigo anterior, te sirvio ? Saludos. |
Respuesta: Formulario -> Proceso -> Resultado Cita:
Muchas gracias :arriba: |
Respuesta: Formulario -> Proceso -> Resultado Lo probé y me resultó a medias. Sé que esa solución tiene un punto negativo y es que, en caso de errores, se valida el formulario dos veces. Pero lo que no es aceptable es el error que da del campo csrf. Yo entiendo el por qué ocurre (cuando se valida por segunda vez, el valor que tenía el campo csrf no corresponde con el nuevo valor) pero no se me ocurre una manera de evitarlo. ¿Alguna idea? |
Respuesta: Formulario -> Proceso -> Resultado A ver esta es una versión mejorada,
Código PHP:
Ver original Saludos. |
Respuesta: Formulario -> Proceso -> Resultado Funciona! Y encima no se valida el formulario dos veces! Muchas gracias! |
La zona horaria es GMT -6. Ahora son las 19:11. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.