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

Funcion para mostrar combos anidados

Estas en el tema de Funcion para mostrar combos anidados en el foro de ASP Clásico en Foros del Web. Amigos, tengo un formulario con 2 combos anidados (marca y modelo de auto). Se que para muchos esto es facil. Ya tengo avanzado mi script, ...
  #1 (permalink)  
Antiguo 08/01/2008, 14:44
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 10 meses
Puntos: 39
Pregunta Funcion para mostrar combos anidados

Amigos, tengo un formulario con 2 combos anidados (marca y modelo de auto).
Se que para muchos esto es facil. Ya tengo avanzado mi script, solo que me he truncado en un error.
Código PHP:
function cambia(oCntrl)
{
  switch (
document.getElementById("marca").selectedIndex)
  {
  <%
    
dim i,j
    i 
0
    Set rs_marca 
SQLQuery(cnnDB"SELECT * FROM marcas ORDER BY cod_marca ASC")
    If 
Not rs_marca.EOF Then
    
Do While Not rs_marca.EOF
  
%>
    case <% = 
%>:
    <%
      
0
      Set rs_modelo 
SQLQuery(cnnDB"SELECT * FROM marca_modelos WHERE cod_marca=" rs_marca("cod_marca") & " ORDER BY dsc_modelo ASC")
      If 
Not rs_modelo.EOF Then
      
Do While Not rs_modelo.EOF
    
%>
      
addOpt(oCntrl, <% = %>, "<% = rs_modelo('dsc_modelo') %>""<% = rs_modelo('cod_modelo') %>");
    <%
        
1
        rs_modelo
.MoveNext
      Loop
    
%>
      break; 
  <%
    
1
    rs_marca
.MoveNext
    Loop
  
%>
  } 

El error me da en esta linea:
Cita:
addOpt(oCntrl, <% = j %>, "<% = rs_modelo('dsc_modelo') %>", "<% = rs_modelo('cod_modelo') %>");
Esta funcion la he tomado de la faq 105.- Selects. Solo que ahi tienen el segundo combo con los datos fijos y yo quiero que sea dinamico.
Alguien podria ayudarme con este problema?
Gracias!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #2 (permalink)  
Antiguo 08/01/2008, 15:28
Avatar de m4xp0wer  
Fecha de Ingreso: septiembre-2007
Mensajes: 66
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: Funcion para mostrar combos anidados

Te sobran los tags de asp dentro de la función:

addOpt(oCntrl, j , rs_modelo('dsc_modelo') , rs_modelo('cod_modelo') )

ya me contarás si te funciona
  #3 (permalink)  
Antiguo 08/01/2008, 16:13
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 10 meses
Puntos: 39
Re: Funcion para mostrar combos anidados

No creo que esa sea la solucion, ya que esos son objetos manejados en ASP y no en javascript.
Lo que quiero lograr es que aparezca algo asi:
Cita:
case 0:
addOpt(oCntrl, 0, "Corolla", "1");
addOpt(oCntrl, 1, "Yaris", "9");
addOpt(oCntrl, 2, "Prado", "12");
break;
case 1:
addOpt(oCntrl, 0, "Tiida", "2");
addOpt(oCntrl, 1, "Sentra", "3");
addOpt(oCntrl, 2, "Sunny", "4");
break;
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 11/01/2008, 19:05
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 10 meses
Puntos: 39
Re: Funcion para mostrar combos anidados

Bueno, la funcion final me quedo asi:
Código PHP:
function cambia(oCntrl)
{
  
oCntrl.length=0
  
switch (document.getElementById("marca").selectedIndex)
  {
  <%
    
dim rs_marcars_modelo
    dim i
j
    i 
0
    Set rs_marca 
SQLQuery(cnnDB"SELECT * FROM marcas ORDER BY cod_marca ASC")
    If 
Not rs_marca.EOF Then
    
Do While Not rs_marca.EOF
  
%>
    case <% = 
rs_marca("cod_marca") %>:
    <%
      
dim detModelos
      j 
1
      Set rs_modelo 
SQLQuery(cnnDB"SELECT * FROM marca_modelos WHERE cod_marca=" rs_marca("cod_marca") & " ORDER BY dsc_modelo ASC")
      If 
Not rs_modelo.EOF Then
      detModelos
="addOpt(oCntrl, " ", 'Seleccione un modelo', 0);" vbCR
      
Do While Not rs_modelo.EOF
        detModelos
=detModelos "addOpt(oCntrl, " ", '" rs_modelo("dsc_modelo") & "', " rs_modelo("cod_modelo") & ");" vbCR
        j 
1
        rs_modelo
.MoveNext
      Loop
      Response
.Write detModelos
      End 
If
    %>
      break; 
  <%
    
1
    rs_marca
.MoveNext
    Loop
    End 
If
  %>
  } 

Espero que a alguien le sirva.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
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 22:58.