ASP - combos dependientes

 
Vista:

combos dependientes

Publicado por dave (13 intervenciones) el 14/06/2010 19:34:37
Hola, bueno haber esto es un poco complicado,,,,porque no tngo apenas experiencia en asp, i me han asignado un proyecto,,,para mi,,,,demasiado grande....aqui va la duda,...

tenemos 3 combos anidados entre ellos...el primero elije marca,,,,dependiendo de la marca aparecen unos modelos...i dependiendo,,,tb de la marca estos modelos usaran un tipo de combustible u otro....(este combo de combustibles es el que debo hacer)

empezamos con:
GENERAL_getLista strHTMLCOMBUSTIBLE, Application("tbCOMBUSTIBLE"), "id", "DESCRIPCION", "TIPO", "ORDEN", "", stringError, CodigoError
--
Function GENERAL_getLista(strHTML, TABLA, CAMPOID, CAMPOTXT, ORDEN, CAMPOSELECCIONADO, FILTROWHERE, stringError, CodigoError)
'If Session("DEV") = 0 Then
On Error Resume Next
'End If

Dim Con
Dim Rec

Dim stringSQL 'As String

Set Con = Server.CreateObject("ADODB.Connection")
Set Rec = Server.CreateObject("ADODB.Recordset")

BBDD_Conectar Con, CodigoError

If Not CodigoError Then

stringSQL = " SELECT %CAMPOID% AS CAMPOID, %CAMPOTXT% AS CAMPOTXT FROM %TABLA% %FILTROWHERE% ORDER BY %ORDEN% "

stringSQL = BBDD_ReemplazarSQL(stringSQL, "%TABLA%", TABLA)
stringSQL = BBDD_ReemplazarSQL(stringSQL, "%CAMPOID%", CAMPOID)
stringSQL = BBDD_ReemplazarSQL(stringSQL, "%CAMPOTXT%", CAMPOTXT)
stringSQL = BBDD_ReemplazarSQL(stringSQL, "%ORDEN%", ORDEN)
stringSQL = BBDD_ReemplazarSQL(stringSQL, "%FILTROWHERE%", FILTROWHERE)

if FILTROWHERE <> "" then
'response.Write stringsql
'response.end
'IF TABLA = tbRELACCIONMAQUINA THEN response.end
end if

Set Rec = Con.Execute(stringSQL)

CodigoError = (Err.Number <> 0)

If Not CodigoError Then

strHTML = ""

If Not Rec.EOF And Not Rec.BOF Then

While Not Rec.EOF And Not CodigoError

strHTML = strHTML & "<option value=""%CAMPOID%"" %SELECTED% >%CAMPOTXT%</option>"

strHTML = Replace(strHTML, "%CAMPOID%", Rec("CAMPOID").Value)
strHTML = Replace(strHTML, "%CAMPOTXT%", Rec("CAMPOTXT").Value)

If CStr(Rec("CAMPOID").Value) = CStr(CAMPOSELECCIONADO) Then
SELECCIONADO = "SELECTED"
Else
SELECCIONADO = ""
End If

strHTML = Replace(strHTML, "%SELECTED%", SELECCIONADO)

CodigoError = (Err.Number <> 0)

If Not CodigoError Then Rec.MoveNext

Wend

End If

End If

Else
stringError = "No se puede conectar a la base de datos." & Err.Description
End If

Set Rec = Nothing
BBDD_DesconectarRapido Con, CodigoError

End Function

------------
con esto cojo de la base d datos los datos del combustible,,,

------------

por html asignamos el combo cobustible a una funcion ajax que llama a otra funcion:

<!--Codigo añadido para el desplegable COMBUSTIBLE-->
<td width='70px' class='Celda01'>Combustible:</td>
<td width='85px' class='Celda01'>
<select name="IDCOMBUSTIBLE" id="IDCOMBUSTIBLE" class="ListadoOBLIG" style="width:100%;height:60px" onChange="fnBuscarCombustibles('')">
<option value="0"></option>
<%=strHTMLCOMBUSTIBLE%>
</select>

la funcion en question a la que llama es la d buscar combustible que la tengo dentro d un case....pero estoy tan liado que nose que parametros pasarle......
----------------------
<!--Codigo añadido para COMBUSTIBLE-->
Case "BUSCARCOMBUSTIBLE"

If SESSION("MST_ACCESOAUTORIZADO") Then
'FAMILIA = Request("FAMILIA")
MARCA = Request("MARCA")
DESCRIPCION= Request("DESCRIPCION")
SELMODELO = Request("SELMODELO")
'DESCMODELO = Request("DESCMODELO")

MODELOS_getCombustible MARCA, DESCRIPCION, SELMODELO, LISTADOCOMBUSTIBLES stringError, CodigoError

' MODELOS_getNumModelosYLista DESCMODELO, SELMODELO, MARCA, FAMILIA, NUMMODELOS, LISTADOMODELOS, stringError, CodigoError

scriptCOMBUSTIBLES = "<script language='javascript'>$('IDCOMBUSTIBLE').setHTML('" & " mod. encontrados');</script>"

Response.Write LISTADOCOMBUSTIBLES
Else

stringError = "No tiene permisos para acceder a la web o la sesión ha caducado. <br /><br /><a href='Default.asp' title='Ir a pantalla de entrada'>Ir a pantalla de entrada</a>"
strERROR = Replace(Application("CONS_STRINGERROR"), "%DESCRIPCIONERROR%", stringError & "<br />" & Err.Description)
Response.Write strERROR

End If
----
i luego la ultima funcion la de modelos_getcombustible....ahi ya estoy mas que perdido...
--------------
<!--Codigo añadido para COMBUSTIBLE-->
Function MODELOS_getCombustible(MARCA, DESCRIPCION, SELMODELO, LISTADOCOMBUSTIBLES, stringError, CodigoError)'MARCA, DESCRIPCION, FAMILIA, LISTADOCOMBUSTIBLES, stringError, CodigoError
If Session("DEV") = 0 Then
On Error Resume Next
End If

Dim Con
Dim Rec
Dim stringSQL 'As String

Set Con = Server.CreateObject("ADODB.Connection")
Set Rec = Server.CreateObject("ADODB.Recordset")

BBDD_Conectar Con, CodigoError

If Not CodigoError Then


stringSQL = ""
stringSQL = stringSQL & " SELECT CB.Descripcion "
stringSQL = stringSQL & " FROM %tbCOMBUSTIBLE% CB INNER JOIN "
stringSQL = stringSQL & " %tbMARCAS% MA ON CB.Tipo = MA.VECTOR "
stringSQL = stringSQL & " WHERE (MA.idMARCA = %MARCA%) "

stringSQL = BBDD_ReemplazarSQL(stringSQL,"%tbCOMBUSTIBLE%", Application("tbCOMBUSTIBLE"))
stringSQL = BBDD_ReemplazarSQL(stringSQL, "%tbMARCAS%", Application("tbMARCAS"))
stringSQL = BBDD_ReemplazarSQL(stringSQL, "%MARCA%", MARCA)

Response.Write stringSQL & "<br>"
Response.End

Set Rec = Con.Execute(stringSQL)

CodigoError = (Err.Number <> 0)

If Not CodigoError Then

If Not Rec.EOF And Not Rec.BOF Then

LISTADOCOMBUSTIBLES = Rec("Descripcion").Value

End If

Else

stringError = "No se puede obtener el tipo de combustible de la marca seleccionada." & Err.Description

End If

Else

stringError = "No se puede realizar la conexión a la base de datos." & Err.Description

End If

Set Rec = Nothing
BBDD_DesconectarRapido Con, CodigoError

End Function

-------------------------------
SI ALGUIEN ENTIENDE LO QUE LE QUIERO DECIR Y ME INTENTA AYUDAR YO CON GUSTO LO SEGUIRE INTENTANDO GUIAR POR MIS INTENCIONES, MUCHISIMAS GRACIAS!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:combos dependientes

Publicado por DAVE (13 intervenciones) el 15/06/2010 17:52:20
NADIE??? :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar