Foros del Web » Programando para Internet » PHP »

validar un select

Estas en el tema de validar un select en el foro de PHP en Foros del Web. hola amigos he terminado un formulario para mi web, se validan los campos perfectamente excepto un select que tengo para elegir a que depto mandar ...
  #1 (permalink)  
Antiguo 03/02/2004, 10:17
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 16 años, 1 mes
Puntos: 0
validar un select

hola amigos he terminado un formulario para mi web, se validan los campos perfectamente excepto un select que tengo para elegir a que depto mandar el formulario.
si no se elige ninguno lo manda.
he puesto este codigo en su validación:

Código PHP:
if (empty($contacta)) {
die (
"No ha indicado a que departamento quiere enviarle la consulta");
}
switch(
$contacta){
case 
1: print "Dpto_comercial" ;break;
case 
2: print "Dpto_produccion" ;break;
case 
3: print "Dpto_administrativo" ;break;
case 
4: print "Dpto_tecnico" ;break;
default: die (
"No ha indicado a que departamento quiere enviarle la consulta");

A ver si me podeis guiar un poco.

este es el select:

Código PHP:

<select name="contacta" size="1">
<
option>Elija una Select one</option>
<
option value="Dpto_comercial">DptoComercial</option>
<
option value="Dpto_produccion">DptoProducci&oacute;n</option>
<
option value="Dpto_administrativo">DptoAdministrativo</option>
<
option value="Dpto_tecnico">Dptotecnico</option>
</
select
__________________
Seguro que ahora me sale mejor!

Última edición por benti; 03/02/2004 a las 16:54
  #2 (permalink)  
Antiguo 03/02/2004, 10:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Usa preferentemente el botón "PHP" para colocar código .. en lugar del de "CODE" .. se verá coloreado y mejor identado ...

El "else" del IF . .no lo veo (se te pasó al ponerlo en el foro?)

El uso de las variables asumiendolas como globales no es del todo correcto. Usa los arrays superglobales $_POST .. $_GET .. etc (en las FAQ's de este foro se habla de ello).

En lugar del "die(mensaje)" sería recomendable que usasese un simple echo o print con tu mensaje .. el resto de tu lógica del IF() debería enrrutar el flujo del código hacia el final del mismo dejando que el resto de HTML que puedas tener ahí se ejecute correctamente.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 03/02/2004, 17:01
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 16 años, 1 mes
Puntos: 0
Ok,
Bien creo que no me explique bien, esta validacion hace que me del el resultado como que no hay ninguna opicon del select seleccionada, ejemplo si elijo cualquiera de ellas me da siempre
"No ha indicado a que departamento quiere enviarle la consulta" que aparece en el deafult, entonces la validacion funciona, pero no identifica que ha habido una seleccion y me devuelve que no esta selecionada.

El if no tiene el elseif porque es mi primera comprobacion y poniendo elseif me da error, si quieres te copio toda la funcion y ves como la tengo entera.

Gracias por la paciencia.
__________________
Seguro que ahora me sale mejor!

Última edición por benti; 03/02/2004 a las 17:04
  #4 (permalink)  
Antiguo 04/02/2004, 08:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y comprobastes si recibes bien el valor de tu $contacta ?

Estás asumiendo como globales las variables .. deberías usar el método y array superglobal asociado a este.

Ese "select" lo tendrás bajo un formulario (<form ..) con su acction y method="???" .. Si usastes GET .. deberías recoger tus variables por:

$_GET['contacta'] .. si usastes POST: $_POST['contacta']

Pero, .. el problema principal no es ese ...

Tu <select> .. la opción y valor que va a tomar tu name="contacta" será el valor de los option de cada value .. En tu caso son: "Dpto_comercial" y los otros que tienes .. NO un 1,2,3 .. para eso tendrías que haber definido tus option como:

Código PHP:
<select name="contacta" size="1">
<
option>Elija una Select one</option>
<
option value="1">DptoComercial</option>
<
option value="2">DptoProducci&oacute;n</option>
<
option value="3">DptoAdministrativo</option>
<
option value="4">Dptotecnico</option>
</
select
Un saludo,

PD: Lee las FAQ's (de las primeras) que hablan sobre el uso de los array's superglobales $_GET, $_POST .. etc...
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 21:10.