Foros del Web » Programando para Internet » Javascript »

history.back() NO FUNCIONA

Estas en el tema de history.back() NO FUNCIONA en el foro de Javascript en Foros del Web. Hola a todos!! Tengo una pequeña situacion que no he logrado averiguar el por que... tengo un FORM en el cual capturo datos, uso tanto ...
  #1 (permalink)  
Antiguo 22/02/2007, 16:11
 
Fecha de Ingreso: septiembre-2006
Mensajes: 52
Antigüedad: 17 años, 7 meses
Puntos: 1
Exclamación history.back() NO FUNCIONA

Hola a todos!!

Tengo una pequeña situacion que no he logrado averiguar el por que...

tengo un FORM en el cual capturo datos, uso tanto TEXTBOX como RADIO-BUTTONS, etc.. todo lo que un formulario puede tener.

A este formulario lo llamo captura.php, de ahi la mando a una pagina donde me muestra lo que capture sin enviarla aun a la base de datos, la llamo previo.php al final tengo 2 botones:
1. boton de confirmacion: la informacion que precargue esta correcta y puede ser enviada a la base
2. boton de modificacion: hay al menos un error en algun campo

los botones tienen el siguiente codigo:

Código:
1. <input type="submit" value="Si, Enviar">
2. <input type="button" value="No, Modificar" onClick="history.go(-1);">
en el evento onClick he utilizado:

1. history.go(-1)
2. history.back( )

Aqui la cuestion es que cuando me regreso a la pantalla anterior los datos que previamente introduje, ya no aparecen, es como si hubiera entrado a una pagina nueva, se pierde la informacion.

Alguien me puede ayudar?
  #2 (permalink)  
Antiguo 22/02/2007, 16:37
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 22 años
Puntos: 4
Re: history.back() NO FUNCIONA

Lo que pasa es que cuando lo pasas a previo.php los datos de captura.php se han perdido y los tienes en previo.php, si deseas hacer esto, tendrías que mandar oculto todos los campos y sus valores y mandarlos todos de regreso a captura.php, con el history.back lo unico que haces es regresar a captura.php como si fuera la primera vez que lo cargas.

Te recomiendo que si quieres validar utilices javascript.

Otra alternativa seria guardar los datos en session.

Espero te sirva mi comentario.
Salu2,
Jars
__________________
No le digas a Jehová que tan grande es tu problema, dile a tu problema cuan grande es Jehová.
  #3 (permalink)  
Antiguo 22/02/2007, 16:38
 
Fecha de Ingreso: febrero-2007
Ubicación: Cancun Quintana Roo
Mensajes: 2
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: history.back() NO FUNCIONA

Bueno a mi parece Puedes hacer dos cosas Usar una funcion de javascript o directamente si usas la funcion entonces quedaria asi
Erik Blanco
<script lenguage="JavaScript">
function regresar()
{
history.back();
}
</script>

Luego en tu boton llamarlo
<input type="button" value="No, Modificar" onClick="JavaScript:regresar();">
  #4 (permalink)  
Antiguo 22/02/2007, 18:20
 
Fecha de Ingreso: septiembre-2006
Mensajes: 52
Antigüedad: 17 años, 7 meses
Puntos: 1
Re: history.back() NO FUNCIONA

ANTES QUE NADA QUIERO DARLES LAS GRACIAS POR SUS OBSERVACIONES

haciendo referencia a lo que LOCOJARS menciona:

el codigo esta de la siguiente forma:

*****captura.php*****
Código:
<form method="post" action="previo.php" onSubmit="return formCheck(this);">
  
  <table width="93%"  border="0"  cellpadding="5">
    <tr>
      <td><div align="right" class="Estilo3">Nombre del sitio : </div></td>
      <td><input name="sitio" type="text" id="sitio" size="55" maxlength="50"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Enviar"></td>
    </tr>
  </table>
  <br>
</form>

*****previo.php*****

Código:
<form method="post" action="ban_check.php">
  <table width="93%"  border="0"  cellpadding="5" cellspacing="5">
    <tr>
      <td><div align="right" class="Estilo19 Estilo20">Nombre del sitio : </div></td>
      <td><?php echo $_POST['sitio'] ?><input name="sitio" type="hidden" id="sitio" value="<?php echo $_POST['sitio'] ?>"></td>
    </tr>
    <tr>
      <td colspan="2"><div align="center">
        <p>&nbsp;</p>
        <p><span class="Estilo9">LA INFORMACION QUE ESTA CAPTURADA ES CORRECTA?</span>
		&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="Submit" value="Si, Enviar">
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <input type="button" value="No, Modificar" onClick="history.back()">        
            </p>
            </p>
      </div></td>
    </tr>
  </table>
  <br>
</form>

no pongo todos los campos por que se haria un chorizote

de antemano, gracias.
  #5 (permalink)  
Antiguo 23/02/2007, 09:03
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 22 años
Puntos: 4
Re: history.back() NO FUNCIONA

Como te mencione anteriormente en previo.php ya tienes los datos del formulario, cuando presionas en el boton de history.back() y regresas a tu formulario anterior, los datos ya no existen, la única manera que tienes de conservar tus datos son:
1- Haces un javascript en captura.php para validar tus datos del formulario
2- En previo.php puedes guardar los datos en session y cuando ya estes seguro que tus datos estan correctos y los termines de procesar puedes borrar la session.

Si te decides por la session deberia se algo asi:

******captura.php******
Código PHP:
<?php
// Inicias la session
session_start();
//todas las demas variables se inicializaran vacias
?>
<input name="sitio" type="text" id="sitio" size="55" maxlength="50" value="<?php echo $_SESSION['sitio'];?>">
Cuando pases a previo.php entonces haces la asignacion de las variables
******previo.php**********
Código PHP:
<?php
session_start
();
// Aqui asignas a la variable de session los valores del formulario, esto lo haces con cada campo.
$_SESSION['sitio'] = $_POST['sitio'];
?>
De esta forma cuando regreses a captura.php tus datos estaran en session.

Espero te de una idea de como poder solucionar tu problema.
Salu2
Jars.
__________________
No le digas a Jehová que tan grande es tu problema, dile a tu problema cuan grande es Jehová.
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 04:54.