Foros del Web » Programando para Internet » Javascript »

Dos select asociados

Estas en el tema de Dos select asociados en el foro de Javascript en Foros del Web. Hola!! amigos tengo una gran duda. Tengo dos select asociados con javascript y al elegir una de las opciones de CENTRO me desplega mis UNIDAD ...
  #1 (permalink)  
Antiguo 12/09/2008, 14:50
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 17 años
Puntos: 0
Exclamación Dos select asociados

Hola!! amigos tengo una gran duda. Tengo dos select asociados con javascript y al elegir una de las opciones de CENTRO me desplega mis UNIDAD pero al momento de seleccionar una opcion de un centro que tenga 5unidades las muestra pero al querer elegir un centro que tiene solo 3 unidades me arroja las 3 mas 2 del select anterior. Ejemplo:
centro unidad
sucre: carupano-araya.cumanacoa-guiria-cariaco
portugueza: guanare-biscucuy-turen-guiria-cariaco

Donde guiria-cariaco no corresponde a portuguesa, es decir, lo van adicionando imagino que es una funcion para remover o limpiar la ultima seleccion y no se hacerlo. Por favor, ayudaaaa!!!! aqui anexo el codigo:
-------------------------------------------------------------------------------------------------
<html>
<head>

<script language="JavaScript">

function addOpt(oCntrl, iPos, sTxt, sVal){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[iPos]=selOpcion);
}

function cambia(oCntrl){
switch (document.frm.centro.selectedIndex){
case 0:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "Seleccione");
break;
case 1:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "00100 - Sede");
addOpt(oCntrl, 1, "00101 - Caucagua");
addOpt(oCntrl, 2, "00102 - Santa Lucia");
addOpt(oCntrl, 3, "00103 - Vargas");
addOpt(oCntrl, 4, "00104 - San Antonio");
break;
case 2:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "00200 - Sede");
addOpt(oCntrl, 1, "00201 - El Tigre");
addOpt(oCntrl, 2, "00203 - Anaco");
break;
case 3:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "00300 - Sede");
addOpt(oCntrl, 1, "00301 - Guadalito");
addOpt(oCntrl, 2, "00303 - Elorza");
break;
case 4:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "00400 - Sede");
break;
case 5:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "00500 - Sede");
break;
case 6:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "00600 - Sede");
addOpt(oCntrl, 1, "00602 - Guasipati");
break;
case 7:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "00700 - Sede");
addOpt(oCntrl, 1, "00701 - Puerto Cabello");
break;
case 8:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "00800 - Sede");
break;
case 9:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "00900 - Sede");
addOpt(oCntrl, 1, "00901 - Pto. Fijo");
addOpt(oCntrl, 2, "00902 - Churuguara");
addOpt(oCntrl, 3, "00903 - Capataria");
addOpt(oCntrl, 4, "00904 - Caucagua");
break;
case 10:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "01000 - Sede");
addOpt(oCntrl, 1, "01001 - Valle la Pascua");
addOpt(oCntrl, 2, "01002 - Altagracia de Orituco");
addOpt(oCntrl, 3, "01004 - Zaraza");
addOpt(oCntrl, 4, "01006 - Las Mercedes Del Llano");
break;
case 11:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "01100 - Sede");
addOpt(oCntrl, 1, "01101 - Carora");
addOpt(oCntrl, 2, "01102 - El Tocuyo");
break;
case 12:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "01200 - Sede");
addOpt(oCntrl, 1, "01201 - Tovar");
addOpt(oCntrl, 2, "01202 - Timotes");
addOpt(oCntrl, 3, "01203 - Canagua");
addOpt(oCntrl, 4, "01204 - Nueva Bolivar");
break;
case 13:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "01400 - Sede");
addOpt(oCntrl, 1, "01401 - Punta de Mata");
addOpt(oCntrl, 2, "01402 - Caripe");
addOpt(oCntrl, 3, "01403 - Temblador");
addOpt(oCntrl, 4, "01404 - Caripito");
break;
case 14:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "01500 - Sede");
break;
case 15:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "01600 - Sede");
addOpt(oCntrl, 1, "01601 - Guanare");
addOpt(oCntrl, 2, "01602 - Biscucuy");
addOpt(oCntrl, 3, "01603 - Turen");
break;
case 16:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "01700 - Sede");
addOpt(oCntrl, 1, "01701 - Carupano");
addOpt(oCntrl, 2, "01702 - Araya");
addOpt(oCntrl, 3, "01703 - Cumanacoa");
addOpt(oCntrl, 4, "01704- Guiria");
addOpt(oCntrl, 5, "01705 - Cariaco");
break;
case 17:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "01800 - Sede");
break;
case 18:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "01900 - Sede");
addOpt(oCntrl, 1, "01901 - Bocono");
break;
case 19:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "02000 - Sede");
break;
case 20:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "02100 - Sede");
addOpt(oCntrl, 1, "02101 - San Barbara");
break;
case 21:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "02200 - Sede");
break;
case 22:
document.frm.unidad.value="";
addOpt(oCntrl, 0, "02300 - Sede");
break;
}
}
</script>
</head>
<body>
<form name="frm">
<table border="0" width="482">
<tr>
<td width="25"> Centro </td>
<td width="89">
<select name="centro" id="centro" onchange="cambia(document.frm.unidad)">
<option value="Seleccione">Seleccione</option>
<option value="Metropolitano">00100 - Metropolitano</option>
<option value="Anzo&aacute;tegui">00200 - Anzo&aacute;tegui</option>
<option value="Apure">00300 - Apure</option>
<option value="Aragua">00400 - Aragua</option>
<option value="Barinas">00500 - Barinas</option>
<option value="Bol&iacute;var">00600 - Bol&iacute;var</option>
<option value="Carabobo">00700 - Carabobo</option>
<option value="Cojedes">00800 - Cojedes</option>
<option value="Falc&oacute;n">00900 - Falc&oacute;n</option>
<option value=" Guarico">01000 - Guarico</option>
<option value="Lara">01100 - Lara</option>
<option value="M&eacute;rida">01200 - M&eacute;rida</option>
<option value="Monagas">01400 - Monagas</option>
<option value="Nueva Esparta">01500 - Nueva Esparta</option>
<option value="Portuguesa">01600 - Portuguesa</option>
<option value="Sucre">01700 - Sucre</option>
<option value="T&aacute;chira">01800 - T&aacute;chira</option>
<option value="Trujillo">01900 - Trujillo</option>
<option value="Yaracuy">02000 - Yaracuy</option>
<option value="Zulia">02100 - Zulia</option>
<option value="Delta Amacuro">02200 - Delta Amacuro</option>
<option value="Amazonas">02300 - Amazonas</option>
</select>
</td>
<td width="6">&nbsp;

</td>
<td width="44"> Unidad</td>
<td width="296">
<select name="unidad" id="unidad" onChange="location.href=this.form.unidad.options[this.form.unidad.selectedIndex].value">

</select>
</td>
</tr>
</table>
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 17/09/2008, 10:31
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Dos select asociados

Aqui esta algo que le va a servir profe.

Una funcion elimina index individuales y otra los elimina a todos. Creo que una respuesta a ese problema puede ser borrando todos los index del select segundario cada vez que seleccione un index del select primario.

Espero que lo ayude.

<html>
<script language="javascript">
function borrarIndex(){

alert("Deberia Borrarse el index: "+FormC.aBorrar.value);

if(FormC.SelectC.options[FormC.aBorrar.value]==null){
alert("No existe el Index");
}
else
{
FormC.SelectC.options[FormC.aBorrar.value]=null;
alert("Index Borrado");
}
}
function borrarTodo(){
for (i=FormC.SelectC.options.length-1;i>=0;i--){
FormC.SelectC.options[i]=null;
}
}

</script>
<br><br><br><br>
<form id="FormC">
Lista:
<select id="SelectC">
<option value="Index0" selected>Index0
<option value="Primero">Primero
<option value="Segundo">Segundo
<option value="Tercero">Tercero
<option value="Cuarto">Cuarto
<option value="Quinto">Quinto
</select>
<br><br>
<input type=button value="Index a Borrar" onclick="borrarIndex()"><input name="aBorrar" type="text" size="5" maxlength="2" />
<br><br>
<input type=button value="Borrar Todos los Index" onclick="borrarTodo()">
</form>
Nota: Cuando se borra un index en realidad se borra su contenido y luego se reordenan todos los index nuevamente.
</html>
  #3 (permalink)  
Antiguo 18/09/2008, 12:34
Avatar de Oviedo  
Fecha de Ingreso: abril-2007
Ubicación: Venezuela
Mensajes: 128
Antigüedad: 17 años
Puntos: 0
Respuesta: Dos select asociados

Gracias amigo vargas...tuve que tomar una parte de tu codigo nada mas con solo la funcion de borrar todo basto. La adapte y listo lo demas no era necesario. Gracias estoy a tu orden en lo que sea. Ya lo resolvi
  #4 (permalink)  
Antiguo 18/09/2008, 15:19
Avatar de cuchurrumin  
Fecha de Ingreso: septiembre-2008
Mensajes: 44
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Dos select asociados

y yo me pregunto, porque no mete todo los datos en un arreglo para que se vea mas bonito el codigo
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 19:27.