Holas, tengo dos combos anidados al seleccionar una categoria en el otro cambia su informacion, pero lo q pasa es q al seleccionar una categoria dede mi paina no llega a cargar el otro combo, he verificado y hay datos, los elimino y creo nuevamente pero nada . pero si creo dos categorias al cargar la pagina muestra error pero cunado selecciono la segunda categoria si funciona pero aun en la pagina muestra el error. Aqui le pongo el codigo:
<HTML>
<HEAD>
<TITLE>Listas dependientes</TITLE>
</HEAD>
<BODY>
<!--
--->
<FORM NAME="Listas" METHOD="POST" ACTION="examen_add.asp">
<div align="center"><br>
<b>SELECCIONE LA CARRERA Y EL NIVEL PARA AGREGAR EL EXAMEN</b> <br>
<br>
</div>
<table width="75%" border="0" align="center">
<tr>
<td width="34%"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Carrera</font></b></td>
<td width="66%">
<select name="Categorias" size="1"
onChange="ComponerLista (document.forms.Listas.Categorias[selectedIndex].value);">
<%
Dim oConn, rs, SQL, cuenta, categoria
'set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
'cn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("ejemplo.mdb")
SQL="SELECT * FROM Carreras"
rs.Open SQL, cn
cuenta=1
while not rs.EOF
%>
<option value="<%=rs.Fields("Id")%>"
<% if cuenta=1 then%>
SELECTED
<%end if%>> <%=rs.Fields("nombre")%></option>
<%
rs.MoveNext
cuenta=cuenta+1
wend
rs.Close
%>
</select>
<br>
</td>
</tr>
<tr>
<td width="34%"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nivel</font></b></td>
<td width="66%">
<select name="Productos" size="1">
</select>
<br>
</td>
</tr>
<tr>
<td width="34%"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Ingresar
título del examen</font></b></td>
<td width="66%">
<input type="text" name="titulo" size="70" maxlength="70">
<br>
</td>
</tr>
</table>
<br>
<br>
<table width="75%" border="0" align="center">
<tr>
<td width="53%">
<div align="center">
<input type="submit" name="submit" value="Grabar">
</div>
</td>
<td width="47%">
<div align="center"><b><font size="2" face="Arial, Helvetica, sans-serif"><a href="default.asp">Menú
Principal</a></font></b></div>
</td>
</tr>
</table>
<P>
<P>
</FORM>
<SCRIPT LANGUAGE="Javascript">
<!--
function Tupla ( campo1, campo2 )
{
this.campo1 = campo1;
this.campo2 = campo2;
}
<%
'Vamos a crear nuestros arrays de productos desde ASP
'El primer if detecta un cambio en la categoría para
'crear un nuevo array en Javascript
SQL="SELECT * FROM nivel ORDER BY carrera, id"
rs.Open SQL, cn
cuenta=0
cat="basura"
while not rs.EOF
if cat<>rs.Fields("carrera") then
' cambio de categoria, empiezo a contar en 0
cuenta=0
cat=rs.Fields("carrera")
'además tengo que crear un nuevo array para la categoría
%>
var opciones<%=cat%> = new Array();
<%
end if
%>
opciones<%=cat%>[<%=cuenta%>]=new Tupla("<%=rs.Fields("nivel")%>","<%=rs.Fields("id" )%>");
<%
cuenta=cuenta+1
rs.MoveNext
wend
%>
<%
'Limpiamos objetos
rs.Close
set rs=nothing
cn.Close
set cn=nothing
%>
var contador;
function ComponerLista ( array ) {
// Compone la lista dependiente a partir
// del valor de la opcion escogida en la lista "padre"
BorrarLista();
array = eval("opciones" + array);
for (contador=0; contador<array.length; contador++)
{
// añade elementos nuestro combobox
var optionObj = new Option( array[contador].campo1, array[contador].campo2 );
Listas.Productos.options[contador] = optionObj;
} // for
} // ComponerLista
function BorrarLista() {
Listas.Productos.length=0;
}
//Inicializamos
ComponerLista (1);
-->
</SCRIPT>
<br>
</FORM>
</BODY>
</HTML>