Foros del Web » Programando para Internet » Javascript »

Selects dependientes

Estas en el tema de Selects dependientes en el foro de Javascript en Foros del Web. Hola a todos. Mis conocimientos de javascript son muy limitados y necesito ayuda para adaptar una función que en el entorno inical funcionaba perfectamente. La ...
  #1 (permalink)  
Antiguo 18/04/2007, 05:40
yz!
Invitado
 
Mensajes: n/a
Puntos:
Selects dependientes

Hola a todos.

Mis conocimientos de javascript son muy limitados y necesito ayuda para adaptar una función que en el entorno inical funcionaba perfectamente.

La función es esta:
function rellena_aplicaciones() {
document.form1.area.options.length = 0;
for (i=0; i<arr_aplicaciones.length; i++) {
if (document.form1.area.value == arr_aplicaciones[i][0]) {
document.form1.aplicacion.options.length++;
document.form1.aplicacion.options[document.form1.aplicacion.options.length-1].text = arr_aplicaciones[i][1];
}
}
}


Y el codigo final este:
<%
dim i
for i=1 to 3
%>
<div class="divForm">
<label for="area<%=i%>">Inform&aacute;tica <%=i%></label>
<select id="area<%=i%>" name="area<%=i%>" onChange="rellena_aplicaciones(this);">
<option value="" selected="selected">Seleccione tipo</option>
<%
dim rsCategorias
set rsCategorias=CreateObject("ADODB.RecordSet")
rsCategorias.CursorLocation=3
rsCategorias.Open "SELECT * FROM tipos_conocimiento ORDER BY descripcion ASC",Application("cn")
do while not rsCategorias.eof
response.write ("<option value="& rsCategorias.fields("ID_Tipo") &">"& rsCategorias.fields("Descripcion")& "</option>")
rsCategorias.movenext
loop
rsCategorias.close
set rsCategorias= nothing
%>
</select>

<select name="aplicacion<%=i%>">
<option value="" selected="selected">Seleccione aplicaci&oacute;n</option>
</select>

<select name="apl_nivel<%=i%>" title="Indique el nivel requerido de cada aplicaci&oacute;n">
<option value="" selected="selected">Seleccione nivel</option>
<option value="Usuario">Usuario</option>
<option value="Usuario Avanzado">Usuario Avanzado</option>
<option value="Profesional">Profesional</option>
<option value="Experto">Experto</option>
</select>
</div>
<% next %>

Como ven, ahora en vez de trabajar con dos select dependientes trabajo con 3 pares de select dependientes añadiendo al final de cada nombre de pares de select su número.

La idea es que tras cambiar el primer select, el segundo se llene con el contenido que le corresponda de un array. Y así en los tres pares.

¿Pueden ayudarme?

Gracais con antelación.
  #2 (permalink)  
Antiguo 21/04/2007, 10:56
yz!
Invitado
 
Mensajes: n/a
Puntos:
Re: Selects dependientes

Tras muchos dolores de cabeza y una semana completa perdida con la maldita función, conseguí terminarla.

Utiliza DOM. Y es una función facilmente modificable para cargar datos de un array en casi cualquier select dependiente.

function rellena_aplicaciones(sel) {
if (sel != "") {
//El valor que se selecciona en el select
var areaapp;
areaapp=sel.options[sel.selectedIndex].value; //alert(sel.value);

//Buscamos el select dependiente
var app;
app=sel.nextSibling.nextSibling;
//Borramos todo excepto el seleccione aplicacion
app.options.length = 1;

//Recorre todo el array
for (i=0; i<arr_aplicaciones.length; i++) {
if (areaapp == arr_aplicaciones[i][0]) {
var opc=document.createElement("option");
opc.value=arr_aplicaciones[i][1];
opc.text=arr_aplicaciones[i][1];
app.appendChild(opc);
//alert(arr_aplicaciones[i][1]);
}
}
}
}
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 05:36.