Cita:
Iniciado por karmish Y hay alguno otra forma de hacer una devolucion de mensaje.
Me explico, lo que nesecito es devolver a la pagina anterior un mensaje de error pero esta debe mantener todo los datos intactos.
Bueno karmish, lo que yo haria seria lo siguiente:
Como tu bien sabes cuando haces un back mediante javascript, todos los datos del formulario de la pagina donde regresas quedan tal cual los enviaste la ultima vez, por tanto lo que haria seria leer una variable de sesion al principio de la pagin, la cual me indicaria si es que el se produjo un error.
Para una mejor explicacion, se cuenta con dos paginas (
web1 que es la que contiene el formulario y
web2 que es la que esta filtrando tus datos)
web1 envia los datos a la web2 y esta detecta un error, no se de que sea tu formulario, pero digamos que encontraste una incoherencia en las fecha, es decir fecha inicial mayor a la fecha final, en ese caso tu haces un back():
if ( fecha1 > fecha2 ) {
$_SESSION [ 'mala_fecha' ] = 1 ; //<-- Estamos definiendo una variable de tipo sesion la cual nos servira como una bandera y nos indicara que se produjo un error de fecha al filtrar los datos.
echo "<script>javascript
:history.back()</script>" ; //<-- Regresamos a la pagina anterior.
}
Muy bien, el error se produjo y nos encontramos nuevamente en la pagina anterior (el formulario), es hora de ver si se produjo un error.
$algun_error = $_SESSION [ 'mala_fecha' ] ;
if ( $algun_error == 1 ) {
alert ( Incoherencia en las fechas introducidas ) ; //<-- Puedes generar el error que quieras o bien tomar alguna accion.
$_SESSION [ 'mala_fecha' ] = 0 ; //<-- Reseteamos la variable para que no vuelva a producirse el error cuando entremos desde otra pagina o actualicemos la misma.
}
Bueno karmish, espero que sirva este metodo.
Saludos,
Javier