2010-03-30 30 views
29

Estoy usando un formulario para "calificar" una página. Este formulario "publica" datos en un script php en otro lugar. Simplemente quiero mostrar un enlace después de que se procese el formulario que llevará al usuario a la página anterior. ¿Puedo hacer esto usando javascript en mi script php?Volver a la página anterior

GF

Respuesta

72

Puede utilizar un enlace para invocar history.go(-1) en Javascript, que es esencialmente equivalente a hacer clic en el botón Atrás. Idealmente, sin embargo, sería mejor simplemente crear un enlace de regreso a la URL desde donde se envió al usuario al formulario - de esa manera se preserva el "flujo" de la historia y el usuario no se pregunta por qué tienen algo hacer clic en "Reenviar" a lo que en realidad solo está enviando el formulario nuevamente.

+0

¿Cómo se utiliza un enlace para invocar ese pedazo de javascript? –

+4

link text here... no funcionará cuando el usuario haya borrado el historial al borrar la caché ... – user1400915

3

Si su servidor web es correctamente redirects a una nueva página después de hacer una publicación, funcionará el botón "volver" en el navegador. O el "history.go (-1)" en javascript. Esto producirá una forma completa.

Sin embargo, si el servidor simplemente devuelve contenido nuevo sin redireccionar, entonces history.go (-1) no lo ayudará. En ese punto, has perdido tu forma.

Si simplemente desea volver a la URL anterior, simplemente conéctela con una etiqueta A HREF. Eso te mostrará una forma vacía.

+0

PHP puede generar redirecciones independientemente del servidor web. –

+1

Es cierto, pero PHP se ejecuta EN el servidor. Estoy hablando de cliente-servidor, no de qué software se ejecuta en el servidor. – drozzy

30

Depende de qué es lo que intentas hacer. Puede usar algo como esto:

echo "<a href=\"javascript:history.go(-1)\">GO BACK</a>"; 

Esa es la opción más simple. El otro póster tiene razón acerca de tener un flujo de historia adecuado, pero este es un ejemplo para ti.

Acaba de editarse, la versión original no estaba sangrada y parecía nada. ;)

+0

@dscher Respuesta perfecta hermano, estaba buscando algo así y afortunadamente encontré tu respuesta. – V15HM4Y

21

Usted preguntó específicamente para soluciones JS, pero en el caso de que alguien visita su formulario con JS desactivado una copia de seguridad de PHP es siempre agradable:

cuando se carga el formulario agarran la dirección de la página anterior través de algo así como $previous = $_SERVER['HTTP_REFERER']; y luego configure eso como <input type="hidden" value="$previous" /> en su formulario. Cuando procesa su formulario con el script, puede tomar ese valor y pegarlo en el header("Location:___") o pegar la dirección directamente en un enlace para enviarlos a donde vinieron de

No JS, bastante simple, y puede estructurarlo para que solo se maneje si el cliente no tiene JS habilitado.

+0

¿HTTP_REFERRER no es vulnerable a los ataques de inyección? Parece que sería. Me gusta que no confíe en JS, pero buscar URL válidas parece una molestia. La versión de JS parece más segura para mí. – blindsnowmobile

24

Prueba esto:

$previous = "javascript:history.go(-1)"; 
if(isset($_SERVER['HTTP_REFERER'])) { 
    $previous = $_SERVER['HTTP_REFERER']; 
} 

en html:

<a href="<?= $previous ?>">Back</a> 

código JavaScript El es inicializar como reserva para HTTP_REFERER variables a veces no funciona.

+2

¡De hecho, me encantó tu respuesta! esta solución se redirigirá sin una notificación emergente que diga "Formulario de reenvío" o en absoluto. +1 –

8

De esta manera:

<?php 

    if (isset($_SERVER["HTTP_REFERER"])) { 
     header("Location: " . $_SERVER["HTTP_REFERER"]); 
    } 

?> 
5

podemos mostrar un botón de retroceso mediante un código HTML en nuestras páginas que pueden tomar la ventana del navegador a la página anterior. Esta página tendrá un botón o un enlace y al hacer clic en él, el navegador volverá a la página anterior. Esto puede hacerse usando html o usando JavaScript en el lado del cliente.

Aquí es el código de este botón

<INPUT TYPE="button" VALUE="Back" onClick="history.go(-1);"> 

Uso de JavaScript

Podemos usar JavaScript para crear un enlace para llevarnos de vuelta a la página anterior o la historia. Aquí está el código para mover hacia atrás el navegador usando JavaScript del lado del cliente.

<a href = "javascript:history.back()">Back to previous page</a> 
1

Creo botón onclick = "history.back();" es una forma de resolver el problema. Pero podría no funcionar en los siguientes casos:

1.Si la página se actualiza o vuelve a cargar. 2.Si el usuario abre el enlace en una página nueva.

Para superar esto, se puede utilizar el siguiente código si sabe a qué página debe regresar. P.ej. Si tiene un no de enlaces en una página y el botón Atrás debe usarse para regresar a esa página.

< tipo de entrada = "button" onclick = "document.location.href = 'filename';" value = "Volver" name = "botón" class = "Bot">

2

... Por mirar el código de Facebook ... Me encontraron esta

Go Back to Previous Page

0

Tal vez tarde a esta respuesta, pero Sólo en HTML puro puede utilizar todos los días ./

<a href="./">Return</a>

Cuestiones relacionadas