Ver Mensaje Individual
  #9 (permalink)  
Antiguo 05/05/2011, 22:58
Avatar de Sotelio
Sotelio
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Chile
Mensajes: 68
Antigüedad: 13 años
Puntos: 21
Respuesta: Duda: No Limpiar los campos de los formularios al actualizar.

Hola

El problema es que todos los que respondimos asumimos que el archivo donde se validaban los campos era el mismo archivo donde estaba el formulario. Y según el código que pegaste (debiste hacerlo desde el principio) la validación se hace en un archivo distinto.

Lo que deseas hacer podría ser con sesiones, por ejemplo:

archivoquerecibelosdatos.php
Código PHP:
<?php
session_start
();
/* para validar los campos especificados en $campos */
$error false;
$campos = array("nombre""correo""etc");
foreach (
$campos as $campo) {
   if (empty(
$_POST[$campo))
     
$error true;
   
/* aquí guardo todos los datos ingresados en el formulario, en la sesión */
   
$_SESSION[$campo] = $_POST[$campo];
}

/* si hubo algún campo vacío */
if ($error) { // redireccion con javascript
  
?>
  <script>document.location='registro.php?error=camposvacios';</script>
  <?php
  
die();
} else {
   
/* qué se hace si no hubo error ?? */
}

?>
Luego, en registro.php debes suponer que siempre hay datos en la sesión, o por lo menos verificar:

registro.php
Código PHP:
<?php
$nombre 
"";
$correo "";
$etc "";

/* con extract() generas todos los datos en la sesión como variables.
De esa manera, si en la sesión hay un campo $_SESSION["nombre"], su valor reemplazará a la variable $nombre definida antes  */
if (!empty($_SESSION))
    
extract($_SESSION1); 


?>
Luego en el formulario, del mismo archivo registro.php
Código HTML:
Ver original
  1. <form action="archivoquerecibelosdatos.php" method="post">
  2.  
  3. Nombre:
  4. <input type="text" value="<?php echo $nombre;?>" />
  5. <br />
  6. Correo:
  7. <input type="text" value="<?php echo $correo;?>" />
  8. </form>
  9. <?php if (@$_GET['error'] == "camposvacios") : ?>
  10.    <div class="error">
  11.        <strong>Todos los Campos son Obligatorios.</strong>
  12.    </div>
  13. <?php endif; ?>

Si te fijas, yo trato de separar la generación de las variables con lo que es estrictamente código html (en registro.php). Al final igual se mezcla html con php, pero la idea es que sea lo menor posible.

Ojalá se entienda.

Saludos
Sotelio