Foros del Web » Programando para Internet » PHP »

Mantener valores en formularios

Estas en el tema de Mantener valores en formularios en el foro de PHP en Foros del Web. Hola amigos un saludo para todos mi consulta es la siguiente: Tengo un formulario que envia datos a un mail, por otro lado lo tengo ...
  #1 (permalink)  
Antiguo 21/08/2006, 16:38
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 14 años, 2 meses
Puntos: 0
Mantener valores en formularios

Hola amigos un saludo para todos mi consulta es la siguiente:

Tengo un formulario que envia datos a un mail, por otro lado lo tengo validado con puro php y envio errores en la pagina donde esta el formulario mediante cabeceras de esta manera:

if (empty($nombre) or empty($mail)){
header("Location: formulario.php?error_mensaje=0");
exit();
}

pero al momento de enviar dicho errores los valores que lleno en el formulario se pierden. Como podria hacer para que esos valores no se pierdan si no se mantegan ahi hasta que el envio se satisfactorio?

Gracias de antemano por su ayuda prestada
  #2 (permalink)  
Antiguo 21/08/2006, 16:58
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 12 años, 2 meses
Puntos: 0
HOla, ese tema ya fue tratado te paso el link

http://www.forosdelweb.com/f18/formulario-php-mantener-datos-418357/

Te recomiendo que antes de postear nuevos mensajes busques si hay alguno similar.

Saludos.
__________________
De todas las cosas que queria ser... :-D acabe siendo un pato volador... :risa:
http://patovolador.wordpress.com
  #3 (permalink)  
Antiguo 21/08/2006, 17:12
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 11 años, 4 meses
Puntos: 0
Podrías iniciar sesión i guardar los campos del formulario en ella, pero yo creo que lo mejor sería que cambiaras el enfoque. En lugar de poner en el action del formulario el script de validación (y supongo que luego usas mail() o algo para enviar el correo), yo usaría el mismo script del formulario, el cual se autoprocesaría. De esta forma, puedes montar una alternativa que en caso de validar bien el form mandara el mail y en caso contario volviera a enviar el marcado del formulario, poniendo los valores que ya tienes en cada campo.

Un ejemplo sencillo. Un formulario que pide el nombre y teléfono, y que muestra error si el usario deja alguno de los dos en blanco podría hacerse así:

Código PHP:
// nombre.php
<?php
  $Nombre
="";
  
$Telefono="";
  if (isset(
$_POST["submit"])) {
    
$Nombre=$_POST["Nombre"];
    
$Telefono=$_POST["Telefono"];
    if (empty(
$Nombre) || empty($Telefono))
       echo 
"<p>Por favor, rellene todos los campos.</p>";
    else {
      if (
mail (...))
       exit (
"Se envió el correo.");
      else
       exit (
"Error mandando correo.");
    }
  }
?>

<form action="nombre.php" method="post">
  <input type="text" name="Nombre" value="<? echo $Nombre ?>" />
  <input type="text" name="Telefono" value="<? echo $Telefono ?>" />
  <input type="submit" name="submit" value="Enviar" />
</form>
  #4 (permalink)  
Antiguo 29/08/2006, 10:49
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 14 años, 2 meses
Puntos: 0
Gracias a su ayuda pude resolver el problema de recuperacion de valores para los text, pero ahora tengo otro problemita para los combos necesito igual recuperar los valores q seleecciono el usuario yo estuve haciendo esto:

<?
$opcion[0]='1';
$opcion[1]='2';
$opcion[2]='3';
$opcion[3]='4';
?>
<select name="opciones">

<?
foreach($opcion as $k => $v) {
?>
<option value="<? if (isset($_SESSION['opciones'])){ echo $_SESSION['opciones'];} ?>" selected="selected"><? echo $v ?></option>
<? }?>
</select>

Estoy trabajando con sesiones y al igual que aplique para los text de esta manera:

<input type="text" name="mail" value="<? if (isset($_SESSION['mail'])){ echo $_SESSION['mail'];} ?>" />

Aplique tambien para el combo pero al parecer no me sale

Gracias por su ayuda prestada
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 15:35.