Foros del Web » Programando para Internet » PHP »

Pagina anterior con uso de history

Estas en el tema de Pagina anterior con uso de history en el foro de PHP en Foros del Web. Hola, Creo que este tema es un problema de Javascript, dado que existe una serie de validaciones vía Javascript y luego al no cumplir con ...
  #1 (permalink)  
Antiguo 08/12/2003, 21:35
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 66
Antigüedad: 14 años, 2 meses
Puntos: 0
Pagina anterior con uso de history

Hola,

Creo que este tema es un problema de Javascript, dado que existe una serie de validaciones vía Javascript y luego al no cumplir con lo esperado se debe regresar a la pantalla anterior. Esto lo he manejo con history.go(-x), hasta el momento, pero no sirve para este caso, dado que me retorna a la página anterior pero con una página totalmente recargada, es decir, en blanco.

Por lo tanto, en el foro de Javascript, me recomendaron incluir mi problema en este foro.

Por lo tanto, puede alguien indicarme alguna idea de cómo conseguir esto.

Explico la situación:

1.- Se tiene una página de ingreso de información, y luego de presionar una tecla, se dirige a otra página (todas son .php) que vía script de JavaScript valida una serie de ciertas de situaciones.

2.- De no cumplirse alguna de ellas, se debe retornar a la página que antes indicada, pero con los antecedentes que allí fueron ingresados. Situación que no realiza, dado que recarga la página pero en blanco.

Cómo puedo manejar esta situación ? Es esta realmente el área adecuada o debo dirigirme donde estaba, es decir, Javascript ?

Espero vuestro apoyo amigos del foro.

__________________
Saludos,

MAC
  #2 (permalink)  
Antiguo 08/12/2003, 22:00
 
Fecha de Ingreso: noviembre-2003
Ubicación: (LF).Santiago - Chile
Mensajes: 69
Antigüedad: 14 años
Puntos: 0
yo lo haría asi...

Código PHP:
<?
//recoges las variables del FORM y por EJ:
//el campo edad debe ser >18
// y el usuario colocó 15

if ($edad<18)
//redireccionamos al formulario
formulario.php?campo_edad=15

?>
-----------------
y luego en tu formulario.php conultas por $edad
Código PHP:
<input type="text" name="edad" <?if (isset($edad)) echo "value='$edad'"?>>
esto funciona, salu2
  #3 (permalink)  
Antiguo 09/12/2003, 00:51
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 66
Antigüedad: 14 años, 2 meses
Puntos: 0
Considero conveniente colocar extracto del código que utilizo para operar el sistema, y con el puedan darme algún apoyo. La solución de Lamp no sé como incorporarla y no funcionó tratándola de adaptar al tema.

Espero vuestro apoyo y ayuda.

Formulario que carga los datos.
---------------------------------------

<td width="291"><font size="4" face="Arial, Helvetica, sans-serif"><strong>Código de Agencia *</strong></font></td>
<td><select name="CA" size="1" tabindex="2"> <option value=""></option>

<?
$Database = "nombre_base";
$SQLQuery = "select codigo_agencia from agencias order by codigo_agencia";
$Tabla = mysql_db_query($Database, $SQLQuery, $IdConect);
while ($Registro = mysql_fetch_object($Tabla))
{
$codigo_agencia = $Registro->codigo_agencia;
?>
<option value="<?=$codigo_agencia?>"> <?=$codigo_agencia?>
</option>
<?
}
?>
</select>
Dejar en blanco si no aplica</td>
</tr>
<tr>
<td width="291"><font size="4" face="Arial, Helvetica, sans-serif"><strong>Código de Operador *</strong></font></td>
<td><select name="CO" size="1" tabindex="4">
<option value=""></option>
<?
$Database = "nombre_base";
$SQLQuery = "select codigo_operador from operadores order by codigo_operador";
$Tabla = mysql_db_query($Database, $SQLQuery, $IdConect);
while ($Registro = mysql_fetch_object($Tabla))
{
$codigo_operador = $Registro->codigo_operador;
?>
<option value="<?=$codigo_operador?>"> <?$codigo_operador?>
</option>
<?
}
?>
</select>
Dejar en blanco si no aplica</td>
</tr>
<tr>
<td width="291"><font size="4" face="Arial, Helvetica, sans-serif"><strong>Clave</strong>
(*) <font size="3"></font></font></td>
<td><input name="CLAVE" type="text" id="CA5" size="8" maxlength="8" tabindex="6">
<font size="3" face="Arial, Helvetica, sans-serif"> (Máximo
8 alfa-caracteres )</font></td>
</tr>
<tr>
<td><font size="4" face="Arial, Helvetica, sans-serif"><strong>Confirme Clave</strong> (*) <font size="3"></font></font></td>
<td><input name="CLAVE2" type="text" id="CLAVE2" size="8" maxlength="8" tabindex="7"></td>
</tr>


Formulario que valida datos y efectúa la carga sobre la base de datos de ser correctos los criterios. Un ejemplo de la aplicación de los criterios NO CUMPLIDOS, y donde debería retornar a la página anterior sin perder los datos ingresados. De esta forma, el usuario corrige el o los errores...

if ($_POST[CO] == "" and $_POST[CA] == "")
{
?>
<script language="JavaScript" type="text/JavaScript">
alert("Debe elegir un Código de Agencia o un Código de Operador");

history.back();
</script>
<?
}


Pero el history retorna a una página inicial en blanco.

La propuesta planteada por Lamp, no logro entenderla bien.

Puede alguien darme una ayuda en vista del código aquí indicado.

__________________
Saludos,

MAC
  #4 (permalink)  
Antiguo 09/12/2003, 01:27
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
si lo metes en corchetes y pones php se colorea el code

[ php]

aqui php

[/ php]

he dejado un espacio en blanco para que lo veas... tu se lo quitas.. es como el bbcode
__________________
3w.valenciadjs.com
3w.laislatv.com
  #5 (permalink)  
Antiguo 09/12/2003, 01:44
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 66
Antigüedad: 14 años, 2 meses
Puntos: 0
Hola Nuevo,

Tu comentario va por el código expuesto o por mi consulta/problema "...página inicial en blanco."

Por que mi real problema no es que llegue a una pagina en blanco, yo me refería a que se devuelve a la página de carga de datos, con los "campos" en blanco, y no con la información hasta el momento ingresada por el usuario. Se entiende ahora?

Ahora bien, si tu comentario se refiere a mi código expuesto...creo que igual se logra entender lo que se pretende dar a conocer. Pero lo tendré en cuenta.

Gracias, espero algún apoyo/solución para esto que me tiene algo retrasado.
__________________
Saludos,

MAC
  #6 (permalink)  
Antiguo 09/12/2003, 11:24
 
Fecha de Ingreso: noviembre-2003
Ubicación: (LF).Santiago - Chile
Mensajes: 69
Antigüedad: 14 años
Puntos: 0
formulario.php
Código PHP:
<html>
<body>
<? if($nombre=="ERROR") echo "Escriba el nombre por favor"?>
<? 
if($apellido=="ERROR") echo "Escriba el apellido por favor"?>
<form name=formulario1 action=check.php method=post>
<input type=text name=nombre <? if(isset($nombre)) echo "value=$nombre";?>
<input type=text name=apellido <? if(isset($apellido)) echo "value=$apellido";?>
<input type=submit value=Verificar>
</form>
</body>
</html>
check.php
Código PHP:
<?
if($nombre=="")
    
header ("Location: formulario.php?nombre=ERROR&apellido=$apellido");

if(
$apellido=="")
    
header ("Location: formulario.php?nombre=$nombre&apellido=ERROR");

?>

esso es todo por ahora me voy a la U...chau salu2
  #7 (permalink)  
Antiguo 09/12/2003, 11:56
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 66
Antigüedad: 14 años, 2 meses
Puntos: 0
Gracias Lamp, validaré lo que indicas.

Suerte en la U !
__________________
Saludos,

MAC
  #8 (permalink)  
Antiguo 10/12/2003, 15:47
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 14 años, 5 meses
Puntos: 2
Código PHP:
formulario.php
<? if($nombre=="ERROR") echo "Escriba el nombre por favor<br>"?>
<? 
if($apellido=="ERROR") echo "Escriba el apellido por favor"?>
<form name=formulario1 action=check.php method=post>
<table><tr><td>nombre :
<input type=text name=nombre <? if(isset($nombre)) echo "value=$nombre";?> >
</td></tr>
<tr><td>Apellido : <input type=text name=apellido <? if(isset($apellido)) echo "value=$apellido";?> >
</td></tr>
<tr><td><input type=submit value=Verificar></td></tr></table>
</form>
check.php

Código PHP:
<?
if($nombre=="")
    
header ("Location: formulario.php?nombre=ERROR&apellido=$apellido");

if(
$apellido=="")
    
header ("Location: formulario.php?nombre=$nombre&apellido=ERROR");

?>

mas o menos funciona bien, pero deberia quedar perfecto...

cuando deja los dos campos vacios solo me muestra en apellido ERROR, y en nombre no guarda nada?

que esta pasando
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #9 (permalink)  
Antiguo 10/12/2003, 16:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Usa exit; despues de cada header("location: ..."); .. así terminaras el script (ejecución) en ese punto .. que es lo que te interesa: si se cumple o no tu condición -> redireccionar a otra pàgina (indicar al navegador que cambie la página) lo que implica (normalmente) que llames a otro script (código) a ejecutar o simple página estática.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 10/12/2003, 19:00
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 66
Antigüedad: 14 años, 2 meses
Puntos: 0
Realmente ninguna de las soluciones que me fueron entregada me sirvió para resolver el problema que tenía, y en estricto rigor aún mantengo.

Lo que hice, fue colocar una serie de validaciones en la página inicial de carga de datos (pagina .php), como la expuse antes, y bueno evito que se dirija a la página siguiente. En realidad, eso está funcionando.

Pero lo que aún no logro hacer que funcione, es mi problema inicial, es decir, que llegado a la página que hace la carga a la base de datos de los datos (valga la redundancia) que "vienen" de la página .php anterior, y se encuentra con una situación que no corresponde, por ejemplo, un código repetido dentro de la base de datos, se retorne a la página anterior SIN PERDER LOS DATOS QUE EL USUARIO HAYA INGRESADO.

Cómo hago eso? history.go no funciona, dado que carga la página como ingreso nuevo, y elimina los datos que el usuario haya ingresado hasta ese instante, y el código de Lamp, bajo el uso de header, simplemente no cumple el objetivo. A pesar de mis intentos modificando un poco su código ajustado a mi realidad.

Expongo el punto exacto donde se presenta la situación de excepción, para que quizás alguien pueda darme alguna idea.

=======
.
.
.
else
{?>
<html>
<head>
<title>Módulo de Mantención Base de Datos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body bgcolor="#FF9900">
<script language="JavaScript" type="text/JavaScript">
alert("Código de Usuario repetido. Revise su ingreso por favor.")
history.go (-1);
</script>
<?
</body>
</html>
<?
}
.
.
.

El extracto corresponde a la página modulo_confingreso_usuario.php, y debe retornar a la página modulo_ingreso_usuario.php, la cual tiene los datos que el usuario desea grabar en la base.

Espero quede más claro el tema, y también vuestro apoyo y ayuda.

Gracias de antemano.
__________________
Saludos,

MAC
  #11 (permalink)  
Antiguo 10/12/2003, 19:14
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 66
Antigüedad: 14 años, 2 meses
Puntos: 0
Es necesario utilizar esto para los saludos...no estoy en desacuerdo con saludar a los amigos, pero para eso están los mp o email privados, creo yo !

Espero vuestra ayuda amigos !
__________________
Saludos,

MAC
  #12 (permalink)  
Antiguo 10/12/2003, 19:22
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 14 años, 5 meses
Puntos: 2
http://www.forosdelweb.com/s/msg170092.html


espero te sirva!!!

Nota : lee y adaptalo a tu script
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #13 (permalink)  
Antiguo 10/12/2003, 19:34
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 66
Antigüedad: 14 años, 2 meses
Puntos: 0
Gerald,

Creo que comenté que había utilizado lo enviado por Lamp, en el cual se hace mención a "header", pero no funcionó; por lo cual, como también indiqué, realicé una mezcla de dicho código con los history.go(), pero tampoco funciona.

Tu código es similar a lo que realicé, pero sigue cargando la página anterior sin los datos que el usuario a ingresado, a fin de que los corrija y vuelva a intentar el envío.

Espero ahora se entienda.
__________________
Saludos,

MAC
  #14 (permalink)  
Antiguo 11/12/2003, 00:15
 
Fecha de Ingreso: octubre-2003
Ubicación: Santiago
Mensajes: 66
Antigüedad: 14 años, 2 meses
Puntos: 0
Amigos del foro,

Alguna idea nueva para mi problema...? Realmente he intentado todo, o casi todo, por que aún soy algo inexperto en esta área, pero sin resultados positivos.

Creo que la solución debe ser súper simple, o bien no me he explicado bien, o simplemente no se entiende lo que pido...

Gracias por vuestra ayuda.
__________________
Saludos,

MAC
  #15 (permalink)  
Antiguo 11/12/2003, 07:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mario ..

Debes hacer lo que planteó Lamp en un principio.

La idea general es propagar tus variables que envias al script de proceso y validación de esos datos del formulario de vuelva a tu formulario en caso de error para rellenar los campos "value" de tus objetos de formulario <input> para que tomen el valor por defecto que será el que tenían al enviarse.

Si dices que probando las soluciones propuestas tienes errores . .lo ideal es que .-indiques- esos errores .. sobre todo esos que comentas sobre "header()" que són comunes por no distribuir bien el código HTML incrustado en scirpts .php ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #16 (permalink)  
Antiguo 11/12/2003, 12:08
 
Fecha de Ingreso: noviembre-2003
Ubicación: (LF).Santiago - Chile
Mensajes: 69
Antigüedad: 14 años
Puntos: 0
Mario otra cosa mas, sería ideal que en vez de colocar todo tu codigo HTML colocaras una descripción de los campos con sus respectivos nombres y que dato contendrian, me explico:

CAMPO DATO
Nombre Nombre del usuario
Ciudad Listado de ciudades (Menu Select)...etc
----------------------------------------------------------------------

Además de los errores exactos que te envía el navegador al pasar por el script que está validando, sin eso no podemos ayudarte mucho, pq el error incluso podria ser una comilla ( ' ) mal puesta y nos estariamos ahogando en un vaso de agua, postea nuevamente lo que te señalo para q sea mas rápido esto, salu2 adios
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 01:42.