Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2013, 05:48
Avatar de Polu
Polu
 
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Se me borran los listBox del formulario cuando hay error de envío.

Hola,
He montado un formulario en php y html, el cual contiene campos de texto normales (input type="text") y listBox (select name), pues bien, cuando doy a enviar y no he introducido algún campo correctamente, como es normal sale el mensaje de error y me devuelve otra vez al formulario que estaba rellenando, de manera que los campos de texto mantienen los datos introducidos anteriormente y sin envargo los listBox se borran, no entiendo por qué, puesto que he creado una sesión: session_start(). Aquí os dejo parte de la estructura por si alguein ve una solución:

Un saludo

Código PHP:
<?php
    
    
if(isset($_POST['Direccion_Email']) AND ($_POST['enviar'])) {
        
session_start();
        
$mensaje_error "";
        include 
'config-formulario.php';
         
         if(!isset(
$_POST['Regimen']) ||                        
            !isset(
$_POST['Nombre_Completo']) ||
            !isset(
$_POST['Direccion_Email'])     
            ) {
            
$mensaje_error .='Al Parecer tiene un problema con el Formulario <br />';        
        }
    
        
        
$regimen strip_tags$_POST['Regimen']);
        
$_SESSION['regimen'] = $regimen;                        
                
        
$su_nombre strip_tags($_POST['Nombre_Completo']);
        
$_SESSION['su_nombre'] = $su_nombre;
        
        
$email_de strip_tags($_POST['Direccion_Email']);
        
$_SESSION['email_de'] = $email_de;        
        
        
        
$email_exp '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
      if(
preg_match($email_exp,$email_de)==0) {
        
$mensaje_error .= 'La dirección Email no es válida<br />';
      }
      if(
strlen($su_nombre) < 2) {
        
$mensaje_error .= 'Ingrese su Nombre o empresa<br />';
      }

      
      if(
strlen($mensaje_error) > 0) {
                echo 
'
                    <div class="alerta"> <b>ERROR AL ENVIAR EL FORMULARIO !</b><br /><br /> '
.$mensaje_error.'</div>        
                '
;
       }
      
      
// Si todo está bien, entonces enviamos el mensaje Email

      
if (strlen($mensaje_error) == 0){ 
             
              
            
$mensaje_email "MENSAJE DEL FORMULARIO DE CONTACTO. <br /><br />";
            
            function 
clean_string($string) {
              
$bad = array("content-type","bcc:","to:","cc:");
              return 
str_replace($bad,"",$string);
            }
            
            
$mensaje_email .= "Régimen: ".clean_string($regimen)."<br />";                                    
            
$mensaje_email .= "Nombre: ".clean_string($su_nombre)."<br />";    
            
$mensaje_email .= "Dirección Email: ".clean_string($email_de)."<br />";        

           
$cabeceras 'From:'.$email_de."\r\n".
                
'Reply-To:'$email_de"\r\n".
                
'X-Mailer: PHP/' phpversion().
                
'Return-Path:' .$email_de."\r\n".
                
'MIME-Version: 1.0' "\r\n".
                
'Content-type: text/html; charset=utf-8' "\r\n";

        
mail($enviar_a$asunto$mensaje_email$cabeceras);
        
header("Location: $pagina_confirmacion");
        echo 
"
         <script>location.replace('"
.$pagina_confirmacion."')</script>
        "
;
    }
}
?>
    <script language="javascript" src="scripts/popcalendar.js" type="text/javascript"></script>
    
    <form name="formulariocontacto" method="post" action="index.php" onSubmit="return validate.check(this)">
<!--//////////////////////////////////////////////////////////////////////// -->

<div id="contenedor_reservas">

    <div id="lista_regimen">
      <select name="Regimen" id="Regimen" value="<?php echo $_SESSION['regimen'?>" >
        <option>Pensión completa</option>
        <option>Media pensión</option>
        <option>Habitación y desayuno</option>
        <option>Sólo habitación</option>
      </select>
    </div>
  </div>
   
  <div id="cont_reserv_datos">
  <div id="reserva_datos">
    <div id="textoreservadatos">Nombre o empresa:</div>
    <div id="camporeservadatos">
      <input type="text" name="Nombre_Completo" id="Nombre_Completo" size="45" value="<?php echo $_SESSION['su_nombre'?>" maxlength="50" >
    </div>

  </div>
  <div id="reserva_datos">
    <div id="textoreservadatos">Email:</div>
    <div id="camporeservadatos">
      <input type="text" name="Direccion_Email" id="Direccion_Email" size="45" value="<?php echo $_SESSION['email_de'?>" maxlength="30" >
    </div>
  </div>
  </div>

<!--  ///////////////////// -->

  <div id="cont_boton_enviar">
    <div id="boton_enviar"><span style="text-align:center">
      <input name="enviar" id="enviar" type="submit" value=" Enviar Formulario »" style="width:200px;height:40px;font-size:18px " />
    </span></div>
  </div>


</form>

</body>
</html>