Foros del Web » Programando para Internet » PHP »

Optimizar validación de formularios

Estas en el tema de Optimizar validación de formularios en el foro de PHP en Foros del Web. Hola, estoy haciendo unos formularios que hacen una búsqueda avanzada, pero no sé si haya otro modo hacerlo, éste es el código : Código PHP: ...
  #1 (permalink)  
Antiguo 18/02/2011, 15:15
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 9 años, 7 meses
Puntos: 21
Pregunta Optimizar validación de formularios

Hola, estoy haciendo unos formularios que hacen una búsqueda avanzada, pero no sé si haya otro modo hacerlo, éste es el código :

Código PHP:
$nombre=$_POST['nombre'];
$fecha_inicial=$_POST['fecha'];
$fecha_final=$_POST['fecha2'];
$area=$_POST['area'];
$tipo=$_POST['tipo'];

if(isset($nombre) && !isset($fecha_final) && !isset($fecha_inicial) && !isset($area) && !isset($tipo))
{
    //Busqueda por Nombres
}
elseif(!isset($nombre) && isset($fecha_final) && isset($fecha_inicial) && !isset($area) && !isset($tipo))
{    
//Búsqueda por fechas

}
elseif(!isset($nombre) && !isset($fecha_final) && !isset($fecha_inicial) && isset($area) && !isset($tipo))
{
//Búsqueda por área
}
elseif(!isset($nombre) && !isset($fecha_final) && !isset($fecha_inicial) && !isset($area) && isset($tipo))
{
//Busqueda por Tipo Soporte
}
elseif(isset($nombre) && isset($fecha_final) && isset($fecha_inicial) && !isset($area) && !isset($tipo))
{
//Búsqueda Por nombre y Fecha
}
elseif(isset($nombre) && !isset($fecha_final) && !isset($fecha_inicial) && isset($area) && !isset($tipo))
{
//Búsqueda por nombre y área
}
elseif(isset($nombre) && !isset($fecha_final) && !isset($fecha_inicial) && !isset($area) && isset($tipo))
{
//Búsqueda por nombre y Tipo soporte
}
elseif(isset($nombre) && isset($fecha_final) && isset($fecha_inicial) && isset($area) && !isset($tipo))
{
//Busqueda por nombre, fecha y area
}
elseif(isset($nombre) && isset($fecha_final) && isset($fecha_inicial) && !isset($area) && isset($tipo))
{
//Busqueda por nombre, fecha y Tipo Soporte
}
elseif(isset($nombre) && isset($fecha_final) && isset($fecha_inicial) && isset($area) && isset($tipo))
{
//Busqueda por nombre, fecha, area y Tipo soporte
}
elseif(isset($nombre) && !isset($fecha_final) && !isset($fecha_inicial) && isset($area) && isset($tipo))
{
//Busqueda por nombre, area y Tipo soporte
}
elseif(isset($nombre) && !isset($fecha_final) && !isset($fecha_inicial) && !isset($area) && isset($tipo))
{
//Búsqueda por nombre y Tipo Soporte
}
elseif(!isset($nombre) && isset($fecha_final) && isset($fecha_inicial) && isset($area) && !isset($tipo))
{
//Búsqueda por Fecha y área
}
elseif(isset($nombre) && !isset($fecha_final) && !isset($fecha_inicial) && isset($area) && isset($tipo))
{
//Búsqueda por Fecha y Tipo soporte
}
elseif(!isset($nombre) && isset($fecha_final) && isset($fecha_inicial) && isset($area) && isset($tipo))
{
//Busqueda por Fecha, área y Tipo soporte
}

elseif(!isset($nombre) && !isset($fecha_final) && !isset($fecha_inicial) && isset($area) && isset($tipo))
{
//Búsqueda por área y tipo soporte
}

elseif(!isset($nombre) && !isset($fecha_final) && !isset($fecha_inicial) && !isset($area) && !isset($tipo))
{
    ?> <script> alert("Disculpe, Escoja una opción para la búsqueda por favor verifique"); </script> <?
    
echo '<script languaje="Javascript">location.href="index.php"</script>'//MENSAJE DE COMPROBACION;
}
Les publico este código porque supongo que hay una manera óptima para realizar este tipo de comprobaciones para los formularios y no llenar 200 líneas de código con if-else

Saludos
  #2 (permalink)  
Antiguo 18/02/2011, 16:14
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Optimizar validación de formularios

ejemplo tenes búsqueda por nombre o por tipo

haces

Where if(isset($nombre)){ nombre like blabla } elseif (isset($area)) { area like blabla }

Osea comprobar que utilizo y mediante eso hacer la consulta, no como isiste que para cada consulta pusiste un elseif

ejemplo:

Tenes un buscador que busca por nombre o apellido.

no tenes que poner

if($nombre){

} elseif($apellido) {

}

con solo poner if($nombre) sabes que si es falso se que busco por apellido

y si a esto tenes que poner nombre o apellido y un telefono

es

if($telefono){
if($nombre) {
consulta para nombre
} else { consulta para apellido }

} else { no introdujo el telefono blabla }


Es algo que no c como explicarlo, ojala te sirva de algo y te llege lo que quiero trasmitir
  #3 (permalink)  
Antiguo 18/02/2011, 17:14
Avatar de jheckson  
Fecha de Ingreso: febrero-2011
Ubicación: $VE->Aragua['Maracay']
Mensajes: 109
Antigüedad: 9 años
Puntos: 8
Respuesta: Optimizar validación de formularios

o puedes construir un <select> el cual indicara que parametro de busqueda deseas realizar... al momento de enviar los datos, capturas la seleccion del <select> y la condicionas para realizar los distintos tipos de busquedas:

Código PHP:
Ver original
  1. if($_POST[miselect]="pornombre")
  2. {
  3. ..... busqueda 1.....
  4. }
  5.  
  6. if($_POST[miselect]="portipo")
  7. {
  8. ..... busqueda 2.....
  9. }

Etiquetas: isset, temas, formulario
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 10:44.