Foros del Web » Programando para Internet » ASP Clásico »

Select's o Listbox dependientes Funcionando!!! pero necesito ayuda!

Estas en el tema de Select's o Listbox dependientes Funcionando!!! pero necesito ayuda! en el foro de ASP Clásico en Foros del Web. Hola Compañeros, estoy trabajando sobre un codigo (que incluyo en zip con la BD) en donde estan enlazados dos listbox (o select's), que funciona perfectamente, ...
  #1 (permalink)  
Antiguo 25/09/2008, 11:10
Avatar de Eutheola  
Fecha de Ingreso: enero-2002
Mensajes: 70
Antigüedad: 22 años, 5 meses
Puntos: 0
Select's o Listbox dependientes Funcionando!!! pero necesito ayuda!

Hola Compañeros, estoy trabajando sobre un codigo (que incluyo en zip con la BD) en donde estan enlazados dos listbox(o select's), que funciona perfectamente, lo que pasa es que quiero adicional a estos dos select (Categorias y Productos) , en la misma pagina incluir dos selects independiente.. uno para Ventas y otro para Libros.

Se que tienen que tener dos o tres conecciones a la BD pero no me ha sido posible lograrlo. Necesito el codigo para estos Selects independientes, a continuacion de los selects dependientes.

El codigo y la Base de datos se puede descargar de aqui

(Incluyo un ejemplo de TRES!!! selects dependientes que vale la pena conocer y porque no mejorar...me funciona con los datos del ejemplo...pero con los mios ya no(+ de 2000 registros) ...y no se porque....de pronto por el numero de datos?)..si alguno se le mide a adaptarlo a otros datos seria muy bueno..

Gracias por la colaboración..

Copio el codigo con el nuevo resaltador de codigo:

Código asp:
Ver original
  1. <HTML>
  2. <HEAD>
  3.     <TITLE>Listas dependientes</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <!--
  7. Listas dependientes por Carlos de la Orden Dijs
  8. 17 de Diciembre de 2000
  9. --->
  10.  
  11. <H2><CENTER>Listas dinámicas dependientes</CENTER></H2>
  12. <P><B>Elige una categoría para ver los productos pertenecientes a ella:</B>
  13. <P>
  14. <FORM NAME="Listas" METHOD="POST" ACTION="receive.asp">
  15. <B>Categorías</B>
  16. <SELECT NAME="Categorias" SIZE="1"
  17.   OnChange="ComponerLista (document.forms.Listas.Categorias[selectedIndex].value);">
  18. <%
  19. Dim oConn, rs, SQL, cuenta, categoria
  20.  
  21. set oConn=Server.CreateObject("ADODB.Connection")
  22. set rs=Server.CreateObject("ADODB.Recordset")
  23. oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("ejemplo.mdb")
  24.  
  25. SQL="SELECT * FROM Categorias"
  26. rs.Open SQL, oConn
  27. cuenta=1
  28. while not rs.EOF
  29. %>
  30.     <OPTION VALUE="<%=rs.Fields("IdCategoria")%>"
  31.     <% if cuenta=1 then%>
  32.         SELECTED
  33.     <%end if%>>
  34.     <%=rs.Fields("NomCategoria")%></OPTION>
  35. <%
  36. rs.MoveNext
  37. cuenta=cuenta+1
  38. wend
  39. rs.Close
  40. %>
  41. </SELECT>
  42. <P><B>Productos</B>
  43. <SELECT NAME="Productos" SIZE="1">
  44. </SELECT>
  45. <P><INPUT TYPE="submit"></FORM>
  46.  
  47. <SCRIPT LANGUAGE="Javascript">
  48. <!--
  49. function Tupla ( campo1, campo2 )
  50. {
  51.     this.campo1 = campo1;
  52.     this.campo2 = campo2;
  53. }
  54.  
  55. <%
  56. 'Vamos a crear nuestros arrays de productos desde ASP
  57. 'El primer if detecta un cambio en la categoría para
  58. 'crear un nuevo array en Javascript
  59.  
  60. SQL="SELECT * FROM Productos ORDER BY Categoria, IdProducto"
  61. rs.Open SQL, oConn
  62. cuenta=0
  63. cat="basura"
  64. while not rs.EOF
  65.     if cat<>rs.Fields("Categoria") then
  66.     ' cambio de categoria, empiezo a contar en 0
  67.         cuenta=0
  68.         cat=rs.Fields("Categoria")
  69.     'además tengo que crear un nuevo array para la categoría
  70. %>
  71. var opciones<%=cat%> = new Array();
  72. <%
  73.     end if
  74. %>
  75. opciones<%=cat%>[<%=cuenta%>]=new Tupla("<%=rs.Fields("Nombre")%>","<%=rs.Fields("IdProducto")%>");
  76.  
  77. <%
  78. cuenta=cuenta+1
  79. rs.MoveNext
  80. wend
  81. %>
  82.  
  83.  
  84.  <%
  85. 'Limpiamos objetos
  86. rs.Close
  87. set rs=nothing
  88. oConn.Close
  89. set oConn=nothing
  90. %>
  91.  
  92. var contador;
  93.  
  94. function ComponerLista ( array ) {
  95. // Compone la lista dependiente a partir
  96. // del valor de la opcion escogida en la lista "padre"
  97. BorrarLista();
  98. array = eval("opciones" + array);
  99.  
  100. for (contador=0; contador<array.length; contador++)
  101. {
  102. // añade elementos nuestro combobox
  103. var optionObj = new Option( array[contador].campo1, array[contador].campo2 );
  104.  
  105. Listas.Productos.options[contador] = optionObj;
  106. } // for
  107. } // ComponerLista
  108.  
  109.  
  110. function BorrarLista() {
  111.  
  112.     Listas.Productos.length=0;
  113. }
  114.  
  115. //Inicializamos
  116. ComponerLista (1);
  117.  
  118. -->
  119. </SCRIPT>
  120. <br>
  121. </FORM>
  122.  
  123. </BODY>
  124. </HTML>
__________________
"Nuestro conocimiento es necesariamente finito, mientras que nuestra ignorancia es necesariamente infinita."

Popper, Karl Raimund



Última edición por Eutheola; 25/09/2008 a las 13:39 Razón: Claridad
  #2 (permalink)  
Antiguo 25/09/2008, 14:40
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: Select's o Listbox dependientes Funcionando!!! pero necesito ayuda!

Solo le dí una mirada rápida a tu código y veo que los valores los actualizas usando arrays en javascript y pues efectivamente, con esa cantidad de datos ya te ha de funcionar muy lento, para selects dependientes debes refrescar la página y volver a formalos o bien usar ajax para generar la capa donde tienes el select desde el servidor.

Para ambos casos hay ejemplos en las respuestas anteriores de este foro y del foro de Ajax.

Saludos
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 02:02.