hola
derkenuke he probado tu ejemplo y si funciona todo ok, pero tengo una pequeña pregunta de que forma lo agrego a my formulario ya que tu creas los select en el javascripts, te paso el codg de my formulario para que veas de que forma lo estoy realizando, okis.
Otra cosa tambien cuando cargo el formulario de que forma hago para que el primer select aparesca en blanco o colocar un texto como "Seleccione su Departamento" (en el caso de los 3 select) y despues de eso ya colocar todas los departamento dados. Ojo que tiene que estar validado.
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><title>Prueba de Formulario</title>
<link rel="STYLESHEET" type="text/css" href="estilos.css">
<SCRIPT language="javascript">
<!--
function CambiaPag(pagina)
{
if ( pagina != "" )
{ window.top.location.href=pagina;
}
}
function validar()
{
if (document.m.nombres.value=="")
{
alert('Ingrese un nombre valido');
document.m.nombres.focus();
return ;
}
else
{
if (!isNaN(document.m.nombres.value))
{
alert("Solo se admiten letras");
document.m.nombres.value="";
document.m.nombres.focus();
return;
}
}
if (document.m.dni.value=="")
{
alert('Ingrese su numero de documento correctamente');
document.m.dni.focus();
return ;
}
else
{
if (isNaN(document.m.dni.value))
{
alert("Solo se admiten numeros");
document.m.dni.value="";
document.m.dni.focus();
return;
}
}
if (document.m.domicilio.value=="")
{
alert('Ingrese su domicilio correctamente');
document.m.domicilio.focus();
return ;
}
//Aqui agregar la validacion de los select (departamento, provincia, distrito)
//obligar al usuario a seleccionar los 3 select
if (document.m.telefono.value=="")
{
alert('Ingresar telefono');
document.m.telefono.focus();
return ;
}
else
{
if (isNaN(document.m.telefono.value))
{
alert("Solo se admiten numeros");
document.m.telefono.value="";
document.m.telefono.focus();
return;
}
}
if (document.m.email.value=="")
{
alert("Ingrese su email correctamente");
document.m.email.focus();
return;
}
else
{
if (document.m.email.value.indexOf("@",0)==-1)
{
alert("Email invalido falta @");
document.m.email.focus();
return;
}
if (document.m.email.value.indexOf(".",0)==-1)
{
alert("Email invalido falta el punto");
document.m.email.focus();
return;
}
}
document.m.submit();
}
//-->
</script>
</head>
<body>
<center>
<form name="m" method="POST" action="procesa.php">
<table width="459" cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="189"><font class="registro">Nombres</font></td>
<td width="270"><input type="text" name="nombres" value="" size="31"></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td width="189"><font class="registro">Sexo</font></td>
<td width="270">
<table width="270" cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="54" align="right"><font class="registro">Masculino </font></td>
<td width="53"><input type="RADIO" name="sexo" value="masculino" checked></td>
<td width="82" align="right"><font class="registro">Femenino</font></td>
<td width="81"><input type ="RADIO" name="sexo" value="femenino"></td>
</tr>
</table>
</td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td width="189"><font class="registro">Fecha de Nacimiento</font></td>
<td width="270">
<select name="dia">
<option value="" selected>Día</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<select name="mes">
<option value="" selected>Mes</option>
<option value="enero">Enero</option>
<option value="febrero">Febrero</option>
<option value="marzo">Marzo</option>
<option value="abril">Abril</option>
<option value="mayo">Mayo</option>
</select>
<select name="ano">
<option value="" selected>Año</option>
<option value="1940">1940</option>
<option value="1941">1941</option>
<option value="1942">1942</option>
<option value="1943">1943</option>
<option value="1944">1944</option>
<option value="1945">1945</option>
</select>
</td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td width="189"><font class="registro">Estado Civil</font></td>
<td width="270">
<select name="estadocivil">
<option value="Soltero" selected>Soltero (a)</option>
<option value="Casado">Casado (a)</option>
<option value="Viudo">Viudo (a)</option>
<option value="Divorciado">Divorciado (a)</option>
</select>
</td>
</tr>
<tr><td height="8"></td></tr>
<tr>
<td width="189"><font class="registro">Número de DNI</font></td>
<td width="270"><input type="text" name="dni" value="" size="17"></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td width="189"><font class="registro">Domicilio</font></td>
<td width="270"><input type = "text" name="domicilio" value="" size="31" style="width:220px;height:18px;font-size:10pt;font-family:arial;font-weight:normal; color:000000;border-width:1;border-style:solid;border-color:CCCDCF"></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td width="189"><font class="registro">Departamento</font></td>
<td width="230">
<select name="departamento">
<option value="Seleccione un Departamento">Seleccione un Departamento
<option value="ancash">Ancash</option>
<option value="apurimac">Apurimac</option>
<option value="arequipa">Arequipa</option>
</select>
</td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td width="189"><font class="registro">Provincia</font></td>
<td width="230">
<select name="provincia">
<option value="Seleccione un Provincia">Seleccione una Provincia
</select>
</td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td width="189"><font class="registro">Distrito</font></td>
<td width="230">
<select name="provincia">
<option value="Seleccione un Distrito">Seleccione un Distrito
</select>
</td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td width="189"><font class="registro">Teléfono</font></td>
<td width="270"><input type = "text" name="telefono" value="" size="31"></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td width="189"><font class="registro">e-mail</font></td>
<td width="270"><input type = "text" name="email" value="" size="31"></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td width="189"><font class="registro">Actividad</font></td>
<td width="270">
<select name="actividad">
<option value="Independiente">Independiente</option>
<option value="Dependiente">Dependiente</option>
<option value="Estudiante">Estudiante</option>
<option value="Sin actividad">Sin activad</option>
</select>
</td>
</tr>
</table>
<table width="459" cellspacing="0" cellpadding="0" border="0">
<tr><td height="10"></td></tr>
<tr>
<td width="189"> </td>
<td width="100"><input type="button" value="Enviar" onClick="validar()" name="button"></td>
<td width="20"> </td>
<td width="100"><input type="reset" value="Cancelar" name="reset"></td>
<td width="50"> </td>
</tr>
</table>
<br>
</form>
</center>
</body>
</html>
Tambien e notado que cuando carga el formulario en el tercer combo aparece todas las ciudades del primer select que sale primero, como haria para solo mostrar sus ciudades correspondientes.
Como he probado con el codigo:
Aca aparece lo siguiente:
1 select Ancash (paises)
2 select Aija (provincias)
3 select Aija (ciudades) (correspondiente al 2 select), pero tambien muestra las ciudades del 2 select (del select provincias)