Estoy haciendo un formulario en el que hay un select dinámico y que, a la hora de enviarlo me arroja el siguiente error:
Notice: Undefined index: tipos in C:\xampp\htdocs\formcont2\index.php on line 13
en vez de validarme el select saltándome el error "Escoja una opción"
¿Que puede estar pasando? La variable tipos está definida
Gracias
<?php
require('conexion.php');
if(isset($_POST['boton'])){
if($_POST['nombre'] == ''){
$error1 = '<span class="error">Ingrese su nombre</span>';
}else if($_POST['email'] == '' or !preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/",$_POST['email'])){
$error2 = '<span class="error">Ingrese un email correcto</span>';
}else if($_POST['asunto'] == ''){
$error3 = '<span class="error">Ingrese un asunto</span>';
}else if($_POST['mensaje'] == ''){
$error4 = '<span class="error">Ingrese un mensaje</span>';
}else if($_POST['tipos'] == ''){
$error5 = '<span class="error">Escoja una opción</span>';
}else{
$dest = "[email protected]"; //Email de destino
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$asunto = $_POST['asunto']; //Asunto
$cuerpo = $_POST['mensaje']; //Cuerpo del mensaje
//Cabeceras del correo
$headers = "From: $nombre <$email>\r\n"; //Quien envia?
$headers .= "X-Mailer: PHP5\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; //
if(mail($dest,$asunto,$cuerpo,$headers)){
foreach($_POST AS $key => $value) {
$_POST[$key] = mysql_real_escape_string($value);
}
$sql = "INSERT INTO `cf` (`nombre`,`email`,`usuario`,`tipo`,`asunto`,`mensaje`) VALUES ('{$_POST['nombre']}','{$_POST['email']}','{$_POST['usuarios']}','{$_POST['tipos']}','{$_POST['asunto']}','{$_POST['mensaje']}')";
mysql_query($sql) or die(mysql_error());
$result = '<div class="result_ok">Formulario enviado correctamente </div>';
// si el envio fue exitoso reseteamos lo que el usuario escribio:
$_POST['nombre'] = '';
$_POST['email'] = '';
$_POST['asunto'] = '';
$_POST['mensaje'] = '';
}else{
$result = '<div class="result_fail">Hubo un error al enviar el mensaje <img src="http://web.tursos.com/wp-includes/images/smilies/icon_sad.gif" alt="" class="wp-smiley"> </div>';
}
}
}
?>
<html>
<head>
<title>Contacto</title>
<link rel='stylesheet' href='estilos.css'>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js'></script>
<script src='funciones.js'></script>
</head>
<body>
<form name='classic' class='contacto' method='POST' action=''>
<div><label>Tu Nombre:</label><input type='text' class='nombre' name='nombre' value='<?php if(isset($_POST['nombre'])){ echo $_POST['nombre']; } ?>'><?php if(isset($errors)){ echo $errors[1]; } ?></div>
<div><label>Tu Email:</label><input type='text' class='email' name='email' value='<?php if(isset($_POST['email'])){ $_POST['email']; } ?>'><?php if(isset($errors)){ echo $errors[2]; } ?></div>
<div><label>Asunto:</label><input type='text' class='asunto' name='asunto' value='<?php if(isset($_POST['asunto'])){ $_POST['asunto']; } ?>'><?php if(isset($errors)){ echo $errors[3]; } ?></div>
<div><label>Mensaje:</label><textarea rows='6' class='mensaje' name='mensaje'><?php if(isset($_POST['mensaje'])){ $_POST['mensaje']; } ?></textarea><?php if(isset($errors)){ echo $errors[4]; } ?></div>
<?php if(isset($errors)){ echo $errors[5]; } ?>
<select name="usuarios" size="4" onChange="updatetipos(this.selectedIndex)" style="width: 150px">
<option selected>Tipo Usuario</option>
<option value="personal">Personal</option>
<option value="estudiante">Estudiante</option>
<option value="otro">Otro</option>
</select>
<select name="tipos" size="4" style="width: 150px" >
</select>
<div><input type='submit' value='Envia Mensaje' class='boton' name='boton'></div>
<?php if(isset($result)) { echo $result; } ?>
</form>
<script type="text/javascript">
var usuarioslist=document.classic.usuarios
var tiposlist=document.classic.tipos
var tipos=new Array()
tipos[0]=""
tipos[1]=["Profesor|profesor", "Trabajador|trabajador"]
tipos[2]=["ADE|adev", "II|ii"]
tipos[3]=["Otro|otro"]
function updatetipos(selectedtipogroup){
tiposlist.options.length=0
if (selectedtipogroup>0){
for (i=0; i<tipos[selectedtipogroup].length; i++)
tiposlist.options[tiposlist.options.length]=new Option(tipos[selectedtipogroup][i].split("|")[0], tipos[selectedtipogroup][i].split("|")[1])
}
}
</script>
</body>
</html>