Foros del Web » Programando para Internet » PHP »

Input sin perder datos

Estas en el tema de Input sin perder datos en el foro de PHP en Foros del Web. Hola, familia: Estoy haciendo un formulario ques es comprobado con php si se han rellenado todos los campos. Cuando no esta completo regresa al formulario. ...
  #1 (permalink)  
Antiguo 16/05/2008, 00:31
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Input sin perder datos

Hola, familia:

Estoy haciendo un formulario ques es comprobado con php si se han rellenado todos los campos. Cuando no esta completo regresa al formulario. El problema que tengo es que cuando regresa el formulario ha borrado todos los datos, es decir, esta completamente en blanco.

Tengo el codigo de este modo:

Código PHP:
<?php
    $nick
=$_POST["nick"];
    
$password=$_POST["password"];
    
    if(
$nick==null){
        
header('Location: register.php?errornick=yes');
        exit();
        }
    if(
$password==null){
        
header('Location: register.php?errorpassword=yes');
        exit();
        }

    include(
'common_conect.php');
    
mysql_query("insert into user (nick,password) values ('$nick','$password')");

?>
El formulario es un formulario simple, por post. Que cambia de color segun termine su direccion.
¿Como lo hago?
  #2 (permalink)  
Antiguo 16/05/2008, 09:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Input sin perder datos

Hola salbatore,

Tu problema en si es que como haces un header( "Location.." ) se borra toda la información por POST, la única forma de hacer lo que pones es guardando en una variable de sesión todos los datos de $_POST y así al dibujar de nuevo tu formulario, checas el value de la sesión.

Saludos.
  #3 (permalink)  
Antiguo 16/05/2008, 10:02
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Input sin perder datos

como es un formulario perqueño, una validacion con javascript igual seria bueno, y despues q lo valide en php



suerte!!!
__________________
~~[FiDeLio]~~
  #4 (permalink)  
Antiguo 16/05/2008, 17:40
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Input sin perder datos

Hola, de nuevo...

Es una pena que no haya una manera mas simple, jeje. No queria utilizar javascript, jeje. Y lo de sesiones me parece demasie para un formulario tonto...

Pensaba que tal vez, se podia continuar enviando la informacion de las variables:

$nick=$_POST["nick"];
$password=$_POST["password"];

Por medio de algun metodo...

Pero ya veo que no, jeje....

Muchas gracias....
  #5 (permalink)  
Antiguo 16/05/2008, 22:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Input sin perder datos

Las puedes enviar por GET, aunque serian visibles en la URL.

Saludos.
  #6 (permalink)  
Antiguo 16/05/2008, 22:35
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Input sin perder datos

Hola, GatorV:

Ya habia pensado hacerlo de ese modo, pero no me gusta mostrar tanto texto en la barra de direcciones...

Al final veo que tendre que hacerlo por ajax...

Muchas gracias por la ayuda...
  #7 (permalink)  
Antiguo 16/05/2008, 22:44
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: Input sin perder datos

mira te enseño una manera ordenada que trabajar con los formulario, que en lo personal a mi me gusta bastante.

este es tu codigo
Código PHP:
<?php
    $nick
=$_POST["nick"];
    
$password=$_POST["password"];
    
    if(
$nick==null){
        
header('Location: register.php?errornick=yes');
        exit();
        }
    if(
$password==null){
        
header('Location: register.php?errorpassword=yes');
        exit(); 
      }

    include(
'common_conect.php');
    
mysql_query("insert into user (nick,password) values ('$nick','$password')");

?>
y este es como yo lo escribiria

Código PHP:
<?php
  $nick
=$_POST['nick'];
  
$password=$_POST['password'];
  
$errores = array();

  if(!
$nick$errores[] = "Debes ingresar un nombre de usuario";
  if(!
$password$errores[] = "Debes ingresar una clave secreta";

  if(
count($errores) > 0){
    foreach(
$errores AS $error){
      echo 
$error."<br>\n";
    }
  }else{
    include(
'common_conect.php');
    
mysql_query("insert into user (nick,password) values ('$nick','$password')");
  }
Y luego un link para volver.

Código HTML:
<a href="javascript:history.go(-1)>Volver</a> 

Y si se te pierde la informacion de los inputs puedes agregarles a cada uno lo siguiente
Código PHP:
<input name="lol" value="<?php if(isset($_POST['lol'])) echo $_POST['lol']; ?> ">
Asi, si el valor esta, lo vuelve a agregar...

espero te sirva de algo
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 00:43.