Foros del Web » Programando para Internet » Javascript »

error de codigo

Estas en el tema de error de codigo en el foro de Javascript en Foros del Web. Holas, tengo dos combos que se relacionan por una bd, al seleccionar el primer combo que muestre la info correspondiente a la primera en la ...
  #1 (permalink)  
Antiguo 04/02/2003, 17:41
 
Fecha de Ingreso: enero-2002
Ubicación: Callao - Perú
Mensajes: 1.127
Antigüedad: 22 años, 3 meses
Puntos: 0
Exclamación error de codigo

Holas, tengo dos combos que se relacionan por una bd, al seleccionar el primer combo que muestre la info correspondiente a la primera en la segunda :-0 :-0
Bueno tengop el codigo y cunado solo tengo un registro me sale error de la pagina, cuando tengo dos o mas registros en el 1er combo sale el error de pagina pero si cambio de registro comineza a funcionar en el segundo combo.
Les pongo el codigo a ver si pueden er mi problema:
<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&iacute;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&uacute;
Principal</a></font></b></div>
</td>
</tr>
</table>
<P>&nbsp;
<P>&nbsp;
</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>

Gracias de antemano.
__________________
SaLuDoS dE:
PePeLuChO dEl PeRú PaRa El MuNdO
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 04:18.