Un select dependiente con 3 niveles

Jaume
04 de Septiembre del 2009
Hola a todos/as

Hace poco que empiezo a investigar con ASP y tengo un problema con el codigo que intento obtener. Tengo una base de datos y quiero leer los datos en base a 3 selects jerrquicamente dependientes.
La idea es que al elegir un criterio (familia) me muestre los articulos asociados a esta familia en el segundo select, y a su vez, al escojer un articulos, me muestre un tercer nivel de dependencia.

Alquien me podria mostar como hacerlo, os lo agradeceria mucho.

Os adjunto el codigo que tengo, funciona para 2 select pero me faltaria modificarlo para que funcione con un tercer select

Muchas gracias
--------------------------------------------------------------------------







<html>

<head>
<title>Combos combinados</title>

<script language = "JavaScript">



<%\'CONSULTA PARA OBTENER LOS DATOS
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("cat_proc.mdb"))



productos_Sql = "Select distinct familia, codigo, nombre, temps_resolucio, reg_fiscal, adrecat, organ_resp, organ_gest, pers_contacte, telef, online, normativa, sac, url, volum, sentit_silenci from articulos "
set rs = CreateObject("ADODB.Recordset")
rs.Open productos_Sql, Conn
x=0
%>

// FUNCION DE COMBO BOX COMBINADO

function sublist(inform, selecteditem)
{
inform.subcatagory.length = 0

<%
count= 0
y=0
do while not rs.eof
%>

x = <%= trim(y) %>;

subcat = new Array();
subcatagorys = "<%=(rs("codigo"))&" "&(rs("nombre")) %>";
subcatagoryof = "<%=(rs("familia"))%>";
subcatagoryid = "<%=(rs("codigo"))%>";
subcat[x,0] = subcatagorys;
subcat[x,1] = subcatagoryof;
subcat[x,2] = subcatagoryid;
if (subcat[x,1] == selecteditem) {
var option<%= trim(count) %> = new Option(subcat[x,0], subcat[x,2]);
inform.subcatagory.options[inform.subcatagory.length]=option<%= trim(count)%>;
}
<%
count = count + 1
y = y + 1
rs.movenext
loop
rs.close
%>
}

</script>

<base target="principal">


<style type="text/css">
.boton{
font-size:10px;
font-family:Verdana,Helvetica;
font-weight:bold;
color:white;
background:#6699CC;
border:0px;
width:70px;
height:19px;
}
</style>
<style type="text/css">
<!--
.boton{
font-size:10px;
font-family:Verdana,Helvetica;
font-weight:bold;
color:white;
background:#6C2A2A;
border:0px;
width:70px;
height:19px;
}
.boton1 { font-size:10px;
font-family:Verdana,Helvetica;
font-weight:bold;
color:white;
background:#6C2A2A;
border:0px;
width:70px;
height:19px;
}
.boton1 { font-size:10px;
font-family:Verdana,Helvetica;
font-weight:bold;
color:white;
background:#6C2A2A;
border:0px;
width:70px;
height:19px;
}
.input { font-family: Tahoma, Verdana, Arial; font-size: 12px; color: #000000; background-color: #f6f6f6; border: #000099; border-style: #6F0000; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px}
.Estilo40 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #333333; }
.Estilo43 {color: #FFFFFF}
.Estilo43 { font-family: Verdana, Helvetica;
color: #000000;
background-color: #E8FFFF;
border: #990000;
border-style: #990000;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
font-size: 10px;
}
}
.Estilo43 { font-family: Verdana, Helvetica;
color: #000000;
background-color: #E8FFFF;
border: #990000;
border-style: #990000;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
font-size: 10px;
}
-->
</style>


</head>

<body>
<form name="prueba" method="POST" action="verarticulo.asp">
<div align="center">
<center>
<table width="73%" border="0" align="center" cellspacing="2">
<tr>
<td><span class="Estilo40"><img src="graf/logo_ds.gif" width="171" height="42"></span></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>

<tr>
<td><img src="graf/espai.gif" width="13" height="7" hspace="1"><span class="Estilo40"><strong>Catleg de processos</strong></span></td>
<td></td>
</tr>
<tr>

<td width="57%">
<select name="familia" size="1" class="Estilo43" id="familia" onChange = "javascript:sublist(this.form, familia.value);">

<option selected>Selecciona una famlia de procediments:</option>
<%familias_Sql = "Select distinct id,familia from familias"
rs.Open familias_Sql, Conn
do while not rs.eof
%>
<option value="<%=rs("id")%>"><%=rs("familia")%></option>


<%rs.movenext
loop
set rs=nothing
conn.close
set conn=nothing%>
</select> <SELECT name="subcatagory" size="1" class="Estilo43" id="subcatagory">
<Option selected value="none"></option>
</SELECT></td>
<td width="43%"> <input name="I4" type="image" src="submit.gif" alt="Veure la fitxa de procs" border="0"></td>
</tr>
</table>
</center>
</div>
<center>
</form>
</body>
</html>