Hola a todos
Bueno esto es para tratar sobre uno de los temas relacionados con los Combos Dependientes o Listas Desplegables Dependientes.
El problema que tengo es con un codigo de 3 combos que fue posteado aqui por Lethe en fecha de 27-05-2003 voy a colocar el código y voy a marcar mi problema para ver si alguien ha utilizado este codigo me diga que tengo mal.
Código:
<script language = "JavaScript">
//-------------------------------------
//--Para Crear los Combos para Grupos y Sub-Grupos
//-------------------------------------
function Tupla(campo1,campo2)
{
this.campo1 = campo1;
this.campo2 = campo2;
}
<%
'=======================================================
'---Vamos a crear nuestros arrays de "GRUPOS" desde ASP
'---El primer if detecta un cambio en el "INVENTARIO" para
'---crear un nuevo array en Javascript
'--------------------------------------
' Query de Grupos
'--------------------------------------
Set Connect = CreateObject("ON_SRP_INV.grupos")
CondicionError
Set Recordset = Connect.GetRecords("1=1", "cod_inv, cod_grupo")
cuenta = 0
cat = "basura"
While Not Recordset.EOF
If cat <> Recordset.Fields("cod_inv") then
'--- Cambio de Inventario, empiezo a contar en 0 ---
cuenta = 0
cat = Recordset.Fields("cod_inv")
'========================================================
%>
//Además tengo que crear un nuevo array para los Grupos
var opciones<%=cat%> = new Array();
<%
'========================================================
End If
'========================================================
%>
opciones<%=cat%>[<%=cuenta%>]=new Tupla("<%=Recordset.Fields("nombre")%>","<%=Recordset.Fields("cod_grupo")%>");
<%
'========================================================
cuenta = cuenta + 1
Recordset.MoveNext
Wend
'========================================================
'--- Limpiamos Objetos ---
Recordset.Close
Set Recordset = Nothing
Set Connect = Nothing
'========================================================
'----------------------------------
' Query de Sub Grupos
'----------------------------------
Set Connect = CreateObject("ON_SRP_INV.subgrupos")
CondicionError
Set Recordset = Connect.GetRecords("1=1", "cod_grupo, cod_subgrupo")
count = 0
cod = "basura"
While Not Recordset.EOF
If cod <> Recordset.Fields("cod_grupo") then
'--- Cambio de Grupos, empiezo a contar en 0 ---
count = 0
cod = Recordset.Fields("cod_grupo")
'========================================================
%>
//Además tengo que crear un nuevo array para los SubGrupos
var MatrizMetr<%=cod%> = new Array();
<%
'========================================================
End If
'========================================================
%>
MatrizMetr<%=cod%>[<%=count%>]=new Tupla("<%=Recordset.Fields("nombre")%>","<%=Recordset.Fields("cod_subgrupo")%>");
<%
'========================================================
count = count + 1
Recordset.MoveNext
Wend
'========================================================
'--- Limpiamos Objetos ---
Recordset.Close
Set Recordset = Nothing
Set Connect = Nothing
'========================================================
%>
// Declaración de variable
var contador;
//--------------------------------------------------
// Función que compone dos (2) Listas Dependientes
//--------------------------------------------------
function ComponerLista(array)
{
// Limpia opciones del select
BorrarLista();
// Asigna bandera de cantidad de registro del sql proyecto (1=hay registros 0=no hay)
cantReg = <%=noRecord%>
// Verifica si hay registros del combo padre
if (cantReg==0) {
// Despliega el tag <Input> en campo Grupo y SubGrupo
document.forms.buscar.txtgrupo.style.display = "";
document.forms.buscar.txtsubgrupo.style.display = "";
}
else
{
// Despliega el tag <Select> en Campo Grupo y SubGrupo
document.forms.buscar.codgrupo.style.display = "" ;
document.forms.buscar.codsubgrupo.style.display = "" ;
// Compone la lista dependiente a partir
// del valor de la opcion escogida en la lista "padre"
// Evalua el array "opciones" creado en tupla
array = eval("opciones" + array);
for (contador = 0; contador < array.length; contador++)
{
// Añade elementos al combobox correspondiente a Grupo
var optionObj = new Option( array[contador].campo1, array[contador].campo1);
buscar.codgrupo.options[contador] = optionObj;
}
// Asigna el Codigo de SubGrupo de la nueva opción seleccionada
subgrupocod = document.forms.buscar.codsubgrupo.options[document.forms.buscar.codsubgrupo.selectedIndex].value;
// Compone la lista dependiente a partir
// del valor de la opcion escogida en la lista "padre"
// Evalua el array "MatrizMetr" creado en tupla
Metr = eval("MatrizMetr" + subgrupocod);
for (contador = 0; contador < Metr.length; contador++)
{
// Añade elementos al combobox correspondiente a Sub Grupo
var optionObj1 = new Option( Metr[contador].campo2, Metr[contador].campo2 );
buscar.codsubgrupo.options[contador] = optionObj1;
}
}
}
//-----------------------------------
// Función que limpia las opciones
// de los combos dependientes
//-----------------------------------
function BorrarLista()
{
buscar.codgrupo.length = 0;
buscar.codsubgrupo.length = 0;
}
//Inicializamos
ComponerLista (document.forms.buscar.codinventario.value);
-->
</script>
Lo que esta marcado en negritas es el problema que tengo, cuando cargo mi pagina me da un error de javascript que es el siguiente:
Object doesn't support this property or method
este error me sale desde un principio y el 3er combo no se me llena con lo seleccionado en el 2do combo.
Gracias de Antemano