Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Volver a la página anterior y actualizarla.

Estas en el tema de Volver a la página anterior y actualizarla. en el foro de Javascript en Foros del Web. Hola, mi problema es el siguiente: Tengo una página web con un formulario que completo. Luego de completarlo y presionar el botón de submit, si ...
  #1 (permalink)  
Antiguo 03/12/2013, 13:06
 
Fecha de Ingreso: enero-2012
Mensajes: 44
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Volver a la página anterior y actualizarla.

Hola, mi problema es el siguiente:

Tengo una página web con un formulario que completo. Luego de completarlo y presionar el botón de submit, si todo está OK, va a otra página que muestra el mensaje "Datos correctos" y allí tengo un link que permite volver a la página anterior, con el código:

<a href="javascript:window.history.back()">Volver a la página anterior</a>

Esta página la accedo desde diferentes lugares, accedo a ella cada vez que quiero mostrar un mensaje exitoso. Por ende, no sé de dónde provino la llamada a la misma.

El problema que tengo es que al apretar ese botón para volver a la página anterior, no me actualiza la página. Es decir necesito que vuelva a la página anterior y antes de mostrarla la actualice. ¿Cómo puedo hacer esto? Estuve buscando bastante en Google y no encontré solución.

Por si influye en algo, el lenguaje del lado del servidor es Java.

Saludos y gracias!
  #2 (permalink)  
Antiguo 03/12/2013, 14:03
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Volver a la página anterior y actualizarla.

En vez de hacer un history.back, haz un location.href=página que corresponde a la de atrás.
  #3 (permalink)  
Antiguo 03/12/2013, 14:15
 
Fecha de Ingreso: enero-2012
Mensajes: 44
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Volver a la página anterior y actualizarla.

Cita:
Iniciado por marlanga Ver Mensaje
En vez de hacer un history.back, haz un location.href=página que corresponde a la de atrás.
Como aclaré no sé de qué página es la llamada, porque desde varias páginas distintas voy a la página que muestra el "mensaje de éxito". ¿O hay alguna forma de darle valor al href en función de la página anterior?

Saludos y gracias por responder.
  #4 (permalink)  
Antiguo 03/12/2013, 14:27
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Volver a la página anterior y actualizarla.

El lenguaje de servidor puede recuperar de donde viene la llamada, en PHP se sabe con $_SERVER['HTTP_REFERER'];
Y si no te funciona por el motivo que sea, almacena en una variable de sesión las dos últimas páginas donde navegó el usuario, y úsalas adecuadamente para imprimirlas en los enlaces.

O si controlas de qué posibles páginas puede venir el usuario, haz que manden por get algun identificador que te sirva para escribir la url correcta según dicho parámetro en esa pagina donde tienes el botón "atrás".
  #5 (permalink)  
Antiguo 03/12/2013, 16:55
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Volver a la página anterior y actualizarla.

Hola Josecanalla:

Casualmente esta misma semana estaba yo con el mismo problema.

La cuestión empieza en que, con el formulario, estamos recargando la página. Así que la página anterior es ... la misma.

PHP nos permite $_SERVER['HTTP_REFERER']; que es algo similar a history.back()

El historial lo tiene el usuario/cliente (su navegador) y no el servidor (PHP).

Tenemos que recurrir a los dispositivos del usuario, vs javascript.

Tienes tres funciones (javascript):
- window.history.back() página anterior
(la escribimos, por ejemplo;
Código HTML:
Ver original
  1. <a href="javascript:window.history.back();">&laquo; Volver a la página anterior &laquo;</a>
- window.history.forward() (la página siguiente).
Y creo que la que te interesa:
- window.history.go(n) donde n será positivo (hacia adelante) o negativo (hacia atrás).

Ten en cuenta que si no hay historial hacia adelante, el código no te va a funcionar.

Derivado a una página con formulario, volver atrás corresponderá mejor a window.history.go(-2) ya que me remonto a la página anterior al formulario después de enviado.

Saludos
  #6 (permalink)  
Antiguo 03/12/2013, 17:05
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Volver a la página anterior y actualizarla.

Estupendo.
¿Pero cómo se fuerza la recarga de la página, que es lo que pregunta?
  #7 (permalink)  
Antiguo 03/12/2013, 17:24
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Volver a la página anterior y actualizarla.

Cita:
Iniciado por marlanga Ver Mensaje
Estupendo.
¿Pero cómo se fuerza la recarga de la página, que es lo que pregunta?
¿Cómo lo quieres?: ¿Dentro de código HTML? Desde enlace:
Código HTML:
Ver original
  1. <a href="javascript:window.history.go(-2);">&laquo; Volver a la página anterior &laquo;</a>

¿Estás dentro de PHP?
Código PHP:
Ver original
  1. <?php
  2. echo '<script>window.history.go(-2)</script>';
  3. ?>

Y desde javascript, haz las funciones que quieras y desde donde quieras:
Código Javascript:
Ver original
  1. location.href=window.history.go(-2);

Creo que aplicar la función es algo básico.

Si Josecanalla tiene dudas, dará algo más de código, pero su referencia es
<a href="javascript:window.history.back()">Volver a la página anterior</a>

Pues: <a href="javascript:window.history.go(-2);">&laquo; Volver a la página anterior &laquo;</a> (las flechitas de regalo).
  #8 (permalink)  
Antiguo 03/12/2013, 17:42
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Volver a la página anterior y actualizarla.

Con -2 te arriesgas a que se pase una página en el historial.
Él quiere forzar a que el navegador recargue la página, y no use la caché. O eso es lo que entiendo yo.

Y acabo de recordar que con cualquiera de las opciones que puse, hay una forma extra de forzar aún más que recargue la página: Añadiendo a la url un parámetro GET con un valor único, aunque no se use para nada. Y ese valor puede ser perfectamente un número aleatorio generado con random. Así que usando el thhp:referer quedaría:
Código PHP:
Ver original
  1. $url=$_SESSION[]."?r=".rand();

Última edición por marlanga; 03/12/2013 a las 17:47
  #9 (permalink)  
Antiguo 04/12/2013, 11:47
 
Fecha de Ingreso: enero-2012
Mensajes: 44
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Volver a la página anterior y actualizarla.

El lenguaje de servidor que estoy usando es Java, y no encuentro forma de hacer lo que me dicen. ¿Tienen idea cuál es la forma de hacerlo en dicho lenguaje?
  #10 (permalink)  
Antiguo 04/12/2013, 11:59
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Volver a la página anterior y actualizarla.

Aquí lo explican muy bien:
http://es.lmgtfy.com/?q=java+http_referer
Me encanta esta página. La voy a poner en favoritos.
  #11 (permalink)  
Antiguo 04/12/2013, 13:11
 
Fecha de Ingreso: enero-2012
Mensajes: 44
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Volver a la página anterior y actualizarla.

Había googleado pero no sabía que tenía que buscar "http_referer". Por las dudas dejo la solución usando Java:

<% String direccAnterior = request.getHeader("referer"); %>
<a href="<%=direccAnterior %>">Volver a la página anterior</a>

Saludos! Gracias!

Etiquetas: formulario, página, volver
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:24.