Recordar datos en formulario php al recibir error

#1
Hola a todos!

Tengo un formulario de php con datos (nombre, telefono, mail, titulo, mensaje y captcha). Al poner el captcha mal, o cualquier otro dato.. te da error, carga la pagina y el formulario se queda en blanco. Lo que quisiera es que me tire error, y con los datos introducidos correctamente no los elimine, me esplico? pues si me he confundido en el captcha, que solo este el captcha vacio, y todo lo demas rellenado... me esplico? jeje pues eso!

Gracias a todos!

Felizes fiestas!
 

xomen

Bovino maduro
#2
Podrias hacer validaciones en cuanto el usuario llene el formulario con javascript o simplemente al enviar los datos guardarlos en variables y darles vuelta al formulario que debes de llenar busca la manera de mantenerlas en memoria. saludos y felices fiestas espero te halla ayudado.
 

Y3K

Bovino Milenario
#3
Pásalos por POST o GET al formulario actualizado, y haz que si existen dichas variables las ponga en los campos correspondientes.
 

omega96

Bovino Milenario
#4
pues yo lo haria con ajax, validadando campo por campo asi solo borrarias los que esten mal llenados pero igual como te dicen arriba puedes reenviartelos por GET o POST y verficicarlos por ejemplo si tenemos un campo llamado "nombre" y si se lleno entonces para verificarlo checas de esta forma if(isset($_GET['nombre'])) o if(isset($_POST['nombre'])) (segun sea el metodo que uses) esto nos dice que si existe esta variable realice alguna accion en este caso le diras que te lo coloque en el valor del campo requerido, aunque tambien puedes hacerlo con javascript asi te ahorras recargar la pagina pero como te comente yo te recomiendo que lo hagas con ajax, igual y posteas tu codigo para que te ayudemos un poco mas, saludos.
 
#5
pues al final, a pesar de ver tantas opciones (guardar en las cookies del explorador, usar javascrypt, ajax y jquery, "opcion" " $_POST['gracias'] "..) al final me he decantado por la mas sencilla, y parece efectiva, pues soy novato en el tema, y ya mas o menos me a funcionado gracias a todos vosotros!!!

tras varios intentos, puse lo siguiente:

http://www.forosdelweb.com/#

  1. <form action="contacto" method="post" id="contactform">
  2. <p><label>Nombre:</label>
  3. <input type="text" name="name" class="input" value=<?=$_POST['name']?>/> </p>
  4. <p> <label>Email:</label>
  5. <input type="text" name="email" class="input" value=<?=$_POST['email']?>/> </p>
  6. <p><label>Teléfono:</label>
  7. <input type="text" name="phone" class="input" value=<?=$_POST['phone']?>/> </p>
  8. <p> <label>Título del mensaje:</label>
  9. <select name="title" class='subject' value=<?=$_POST['title']?>/>
  10. <p><label>Mensaje:</label>
  11. <textarea name="message" rows="" cols="" value=<?=$_POST['message']?>/></textarea>
  12. </p>




Si, gracias a vosotros ya he conseguido que me recuerde los datos (weee graciaaas!!!) pero dos apuntes:

1- Cuando cargo la pagina, delante de los campos me interpone una "/" y cada vez que cargo y tengo un error de un dato, me lo escribe detras de lo que tenga escrito. Eejemplo: Nombre: / (lo dejamos en blanco y doy a enviar) = Nombre: /(ponemos un nombre cualquiera)Juanito (enviar) = Nombre: /Juanito//.. Y asi sucesivamente.

2- El campo de texto mensaje, no me lo recuerda... que ocurre? lo puse mal?

gracias por todos, la verdad me habeis ayudado muchissimo!!!
 

omega96

Bovino Milenario
#6
pues mira como te habian dicho antes si decides hacerlo por metodo POST entonces seria algo parecido a esto

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<style>

body{
background-color: #202B30;
color: #FFF;
}


.texto{
font-family: Arial, Helvetica, sans-serif;
background-color: #4e7178;
color: #FFF;
}

.texto:hover{
background-color: #4FA9B8;
color: #333;
}

.label{
height: auto;
width: 350px;
}

</style>

</head>

<body>
<form name="formulario" action="index.php" method="post">
Nombre:<input type="text" class="texto" name="nombre" value="<?PHP if(isset($_POST['nombre'])){echo "recibimos: ".$_POST['nombre'];} ?>"/><br />
E-Mail<input type="text" class="texto" name="email" value="<?PHP if(isset($_POST['email'])){echo "recibimos: ".$_POST['email'];} ?>"/><br />
Telefono:<input type="text" class="texto" name="telefono" value="<?PHP if(isset($_POST['telefono'])){echo "recibimos: ".$_POST['telefono'];} ?>"/><br /><br />
<input type="submit" value="Enviar formulario" />



</form>

</body>
</html>

cualquier cosa por aqui andamos.
 
#7
ok, lo he modificado tal y con vuestras indicaciones. Pero el campo "mnesaje" y "titulo" sigue sin recordarlos, todo lo demas esta bien.

<div id="form">
<?php if($msg) { ?><p><span class="info"><?php echo $msg; ?></span></p><?php } ?>
<?php if($msgerror) { ?><p><span class="error"><?php echo $msgerror; ?></span></p><?php } ?>
<?php if(!isset($status) || $status=="NOTOK"){ ?>
<form action="contacto" method="post" id="contactform">
<p><label>Nombre:</label>
<input type="text" name="name" class="input" value="<?php echo $_POST['name']?>"/> </p>

<p> <label>Email:</label>
<input type="text" name="email" class="input" value="<?php echo $_POST['email']?>"/> </p>

<p><label>Teléfono:</label>
<input type="text" name="phone" class="input" value="<?php echo $_POST['phone']?>"/> </p>

<p> <label>Título del mensaje:</label>
<select name="title" class='subject' value="<?php echo $_POST['title']?>">
<option value="error">-- seleccione un título --</option>
<option value="opt1">opcion1</option>
<option value="opt2">opcion2</option>>
<option value="otros">-- Otros (especifique) --</option>
</select>
<p>
<label>&nbsp;</label>
<input type="text" name="otros2" class='otros2' style='display:none;'/>
</p>
<p><label>Mensaje:</label>
<textarea name="message" rows="" cols=""/><input value="<?php echo $_POST['message']?>"/></textarea>
</p>

<div class="indent">
<input type="hidden" name="Submit" value="Submit" />
<input name="submit" class="submitbutton" type="image" src="images/submit_button.jpg" value="Send Message"/>
</div>
</form>
<?php } ?>

Tambien cabe decir que esta vez, en vez de poner "/" (las barras) pone: <input value=""/> pero unicamente en el campo del mensaje, en lo demas esta vacio!

Gracias por molestaros!
 
Arriba