Foros del Web » Programando para Internet » PHP »

Volver atrás sin recargar la página

Estas en el tema de Volver atrás sin recargar la página en el foro de PHP en Foros del Web. Buenas: Estoy trabajando en una página php con muchos input y select para que la persona elija productos. Al clickear en "FINALIZAR" se dirige a ...
  #1 (permalink)  
Antiguo 16/04/2009, 15:57
 
Fecha de Ingreso: abril-2005
Mensajes: 21
Antigüedad: 19 años
Puntos: 0
Volver atrás sin recargar la página

Buenas:
Estoy trabajando en una página php con muchos input y select para que la persona elija productos.
Al clickear en "FINALIZAR" se dirige a otra página, en donde carga todos los datos que la persona elijió para poder imprimirlos.
Lo que quiero hacer es que si la persona olvidó elejir algo y clickea en el botón "atrás" del explorador, pueda volver a la página anterior y los productos elejidos queden tal cual estaban. Se puede?, supongo que hay alguna manera de que la página no se recargue al volver atrás pero no la sé.
Saludos y gracias.
Luis
  #2 (permalink)  
Antiguo 16/04/2009, 16:06
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Volver atrás sin recargar la página

Hola,

¿Has probado con javascript:history.go(-1); ?
  #3 (permalink)  
Antiguo 17/04/2009, 04:13
 
Fecha de Ingreso: abril-2005
Mensajes: 21
Antigüedad: 19 años
Puntos: 0
Respuesta: Volver atrás sin recargar la página

No me sirve porque el problema es que la gente va a presionar directamente VOLVER ATRÁS en el explorador, se le van a borrar todos los datos que habían ingresado y van a tener que empezar de cero a llenar el form.
Gracias =
Saludos!
  #4 (permalink)  
Antiguo 18/04/2009, 05:05
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Volver atrás sin recargar la página

Hola,

Lo único que se me ocurre entonces es que al pulsar el botón, los datos correctos se inserten en una tabla temporal en la base de datos y que una vez esté todo correcto se copien a la tabla de datos buena, y se borren de la temporal. No sé si me explico..
  #5 (permalink)  
Antiguo 18/04/2009, 05:29
Avatar de jayjayjay_92  
Fecha de Ingreso: octubre-2008
Mensajes: 77
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Volver atrás sin recargar la página

No se si funcionará pero puedes hacer una sesion/cookie y almacenar ahi los datos
al estilo:
$_POST['x'] = $_SESSION['x'] de esta forma y luego en el formulario
value="<?php echo'$_SESSION['x'] ?>"

De este modo si no ha escrito nada la sesion / cookie estará vacia y no habrá ningún dato
  #6 (permalink)  
Antiguo 18/04/2009, 09:18
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Volver atrás sin recargar la página

Hola,

jayjayjay_92 tiene razón. No se me había ocurrido.. Para no tener que abrir tantas sesiones lo que puedes hacer sería:

$_POST['campo1'] = $_SESSION['form']['campo1'];
$_POST['campo2'] = $_SESSION['form']['campo2'];
// etc..

Y luego como ha comentado él de imprimirlo en el value de la caja de texto.
  #7 (permalink)  
Antiguo 18/04/2009, 09:42
(Desactivado)
 
Fecha de Ingreso: abril-2009
Ubicación: En mi casa
Mensajes: 191
Antigüedad: 15 años
Puntos: 0
Respuesta: Volver atrás sin recargar la página

Haces esto:

Código PHP:
campo1=$_POST['campo1']
campo2=$_POST['campo2'
Luego...

Código PHP:
<form...>
<
input type=hidden value="$campo1... 
Entonces en la web de registro (web donde está el form)... recoges esto y lo muestras como value (por defecto)

Creo que funciona, auqnue no lo he probado
  #8 (permalink)  
Antiguo 18/04/2009, 14:48
Avatar de jayjayjay_92  
Fecha de Ingreso: octubre-2008
Mensajes: 77
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Volver atrás sin recargar la página

Cita:
Iniciado por Usa_Firefox Ver Mensaje

Código PHP:
campo1=$_POST['campo1']
campo2=$_POST['campo2'
Luego...

Código PHP:
<form...>
<
input type=hidden value="$campo1... 
Pero entonces si vuelve atrás no funciona, $campo1 tiene que ser una sesion o una cookie (para mucha información o información sensible yo aconsejo sesiones).

Las variables $_POST NO se almacenan si pones en un formulario action="algo.php" method="post" y en algo.php pones echo $_POST['valor¡]; la primera vez, cuando envies tu formulario, se mostrará sin problemas las siguientes sin enviarlo no funcionara, y da igual si haces $_POST['valor'] = $valor, las unicas variables que se almacenan son cookies, sesiones y ahora mientras escribo esto me doy cuenta que tambien por url.

PD: Haz caso a d-ART y usa un array si hay muchos campos.

Última edición por jayjayjay_92; 18/04/2009 a las 14:50 Razón: completar
  #9 (permalink)  
Antiguo 18/04/2009, 15:29
 
Fecha de Ingreso: abril-2005
Mensajes: 21
Antigüedad: 19 años
Puntos: 0
Respuesta: Volver atrás sin recargar la página

Gracias a todos por las respuestas.
Al final lo hice de esa manera, aunque no quería complicarme tanto.
He visto en sitios, como por ejemplo mercadolibre, que realizás una búsqueda, te muestra los resultados, clickeás en uno y al volver atrás te muestra la página tal cual la dejaste..., inclusive si habías descendido con la barra de desplazamiento te conserva la posición..., algo así quería hacer.
Lo que hice fué lo siguiente por si a alguno le sirve:
En la página que recibe el formulario
foreach($_POST as $key => $value){
$_SESSION[$key] = $value;
}
con este código guardé las variables del form en variables de sesión.

en el form:
<input type="text" name="hola" value="<?=$_SESSION[hola]; ?>" >

Saludos
  #10 (permalink)  
Antiguo 18/04/2009, 20:18
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Volver atrás sin recargar la página

utiliza el tag completo de php porque vas a tener serios problemas de compatibilidad.
Código :
Ver original
  1. <?php ?>
suerte
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 08:36.