Ver Mensaje Individual
  #7 (permalink)  
Antiguo 04/01/2010, 13:39
Avatar de estibaliz2006
estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: mantener valor de un select mediante php

que va...nada de nada...mira...yo valido mediante expresiones regulares antes de mandarlo a la base de datos. te dejo mi codigo:

Código PHP:
//Iniciamos si se ha pulsado el botón 'Siguiente' en el Formulario
if(isset($_POST['submit'])) 
{
// Creamos nombres de variables cortos
$nombrerest trim$_POST['nombrerest']); 
$provinciarest trim$_POST['provinciarest']);

//ahora mostramos mensajes si los dos campos, nombre y provincia, están //cumplimentados, es decir que no están vacíos

if (!empty($nombrerest) && !empty($provinciarest) && ereg("^[a-z A-Z áéíóúAÉÍÓÚÑñ]{2,}$",$provinciarest)) {
echo 
"correcto";
}

//en caso contrario, comenzamos con las validaciones

else 
   { 

     echo 
"<br><div style=\"background-color: #FFFFFF; border: #FFA500 1px solid; padding: 6px;\"><span class=\"text1\">Se han detectado los siguientes errores. Por favor, corríjalos y reenvíe la información</span><br><br>"
             if(empty(
$nombrerest)) {
         echo 
"<span class=\"text14\">El campo Nombre es obligatorio</span></br>"
         
$nombrerest $nombrerest."\" style=\"background-color: #FFE4E1\"";  
         }
         if(empty(
$provinciarest)) {
         echo 
"<span class=\"text14\">El Campo Provincia es Obligatorio</span></br>"
         
$provinciarest $provinciarest."\" style=\"background-color: #FFE4E1\"";  
         }
 echo 
"</div><br><br>";

//hasta aquí los mensajes de error a mostrar durante las validaciones. Mostramos nuevamente el formulario para que se corrija dichos defectos
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\" name=\"f1\">"
echo 
"Nombre<br><input type=\"text\" name=\"nombrerest\" class=\"caja\" size=\"50\" value=\"$nombrerest\"></br>";
echo 
"Provincia<br>
<select name=\"provinciarest\" class=\"caja\"> "
;
  
 
$sql="select * from provincia order by nombreprov asc";
 
$r mysql_query($sql) or die(mysql_error());
 
 
$sql2 mysql_query("select * from provincia where id_provincia=$provinciarest");
 
$r2 mysql_query($sql2) or die(mysql_error());
 
$p2 mysql_fetch_assoc($r2);
 while(
$p mysql_fetch_array($r)){
  
$s = ($p["id_provincia"]==$_POST["provinciarest"]?"selected='selected'":"");
  echo 
"<option value='".$p["id_provincia"]."' class='caja' ".$s.">".$p["nombreprov"]."</option>";
 }
 
mysql_free_result($result);
echo 
"</select></br></br>";
echo 
"<br><input type=\"submit\" name=\"submit\" class=\"caja\" value=\"Enviar\">"
echo 
"<P><span class=\"required\">*</span> Todos los campos son obligatorios</P></FORM>"
//Procedemos a cerrar el supuesto de que haya algún error en la cumplimentación de algún campo
      
}      
    
//cierre de la aplicación para el caso incorrecto de los campos mediante el último }
      
}      
    
//este último } corresponde a al inicial abierto para cuando se pulsaba el botón Enviar

///////////SI NO SE HA PULSADO EL BOTÓN ENVIAR///////////////////////////////////////////////////////    
    
    //si no se ha pulsado el botón enviar, en este caso se muestra el formulario con todos los campos
if(!isset($_POST['submit'])) 
{
echo 
"<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\" name=\"f1\">"
echo 
"Nombre <br><input type=\"text\" name=\"nombrerest\" class=\"caja\" size=\"50\" value=\"$nombrerest\"></br>";
echo 
"Provincia<br>
<select name=\"provinciarest\" class=\"caja\">"
;
 
$sql="select * from provincia order by nombreprov asc";
 
$resultados mysql_query($sql);
 
$p mysql_num_rows($resultados); 
 while(
$p mysql_fetch_array($resultados)) 
 {
 echo 
"<option value=\"$p[id_provincia]\" class=\"caja\">$p[nombreprov]</option>";
 }
 
mysql_free_result($result);
echo 
"</select></br></br>";
echo 
"<br><input type=\"submit\" name=\"submit\" class=\"caja\" value=\"Enviar\">"
echo 
"<P><span class=\"required\">*</span> Todos los campos son obligatorios</P></FORM>";
 } 
ea, pues con todo ello me da el error que te digo. la cosa está en que si el usuario deja el campo del nombre en blanco pero selecciona por ejemplo guadalajara cuando vuelva a cargar la página procedente de la validación diga que el campo nombre es obligatorio pero que en el campo provincia esté seleccionada guadalajara (aún cuando salga si se le da al desplegable todo el listado de provincias)
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen