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