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

viejo tema

Estas en el tema de viejo tema en el foro de ASP Clásico en Foros del Web. hola a todos, por lo que veo en las faq`s tanto de asp como de javascript hay ejemplos referidos a estos temas(3 listas dependientes) pero ...
  #1 (permalink)  
Antiguo 27/10/2004, 09:14
 
Fecha de Ingreso: septiembre-2004
Mensajes: 42
Antigüedad: 19 años, 9 meses
Puntos: 0
Sonrisa viejo tema

hola a todos, por lo que veo en las faq`s tanto de asp como de javascript hay ejemplos referidos a estos temas(3 listas dependientes) pero como no conozco nada de java script y los post que hay en asp o son sin vinculacion a base de datos o los post que tratan sobre este tema con base de datos no se encuentran disponibles ya que las direcciones posteadas para bajar el ejemplo no se pueden acceder ya que no exiten mas, si alguien tiene una direccion de este tipo de ejemplo por favor si es tan amable de postearlo a si ya de paso queda en el foro muchas gracias ya que llevo dos semanas rompiendome la cabeza con esto. saludos
  #2 (permalink)  
Antiguo 27/10/2004, 09:37
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535


Cita:
How do I make one dropdown depend on another?
This is asked all the time... click acá para seguir leyendo

Saludos
__________________
...___...
  #3 (permalink)  
Antiguo 28/10/2004, 11:47
 
Fecha de Ingreso: septiembre-2004
Mensajes: 42
Antigüedad: 19 años, 9 meses
Puntos: 0
Gracias Al_Zuwaga por los link´s que psteastes, te comento que el que mas me sirve por tener 3 listbox y los datos encontrarce en db es el sgte link:
http://www.atgconsulting.com/triplelist.asp
Pero verdaderamente trate de modificarlo pero no pude ya que el tipo de consulta pude entender como trabaja pero la funcion que crea me supera, voy a postear el codigo para ver si entre todos podemos sacarlo adelante estoy segura de que si, saludos.
  #4 (permalink)  
Antiguo 28/10/2004, 11:54
 
Fecha de Ingreso: septiembre-2004
Mensajes: 42
Antigüedad: 19 años, 9 meses
Puntos: 0
el codigo es el sgte, quite los comentarios que tenia el codigo ya que de porsi el codigo es extenso mas los comentarios es como que se van a acordar de toda mi familia jajaj, igualmente si quieren ver los comentarios pueden acceder al link que se encuentra mas arriba, besos.

</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--

function clearcombo(elem){
var i;
for (i = elem.options.length; i >= 0; i--) elem.options[i] = null;
elem.selectedIndex = -1;
}
function populatecombo2(elem, index){
if (array1.length >= index){
if (array1[index]){
for (var i = 0; i < array1[index].length; i= i + 2){
elem.options[elem.options.length] = new Option(array1[index][i + 1], array1[index][i]);
}
}
else{
elem.options[elem.options.length] = new Option("[none available]", 0);
}
}
else{
elem.options[elem.options.length] = new Option("[none available]", 0);
}
}
function populatecombo3(elem, index){
if (array2.length >= index){
if (array2[index]){
for (var i = 0; i < array2[index].length; i= i + 2){
elem.options[elem.options.length] = new Option(array2[index][i + 1], array2[index][i]);
}
}
else{
elem.options[elem.options.length] = new Option("[none available]", 0);
}
}
else{
elem.options[elem.options.length] = new Option("[none available]", 0);
}
}
function clickcombo(nWhich,elem1,elem2,elem3){
if (nWhich == 1){
clearcombo(elem2);
clearcombo(elem3);
populatecombo2(elem2, elem1[elem1.selectedIndex].value);
}
if (nWhich == 2){
clearcombo(elem3);
populatecombo3(elem3, elem2[elem2.selectedIndex].value);
}
return true;
}
// -->
</script>

<BODY>
<%
Dim Conn
Dim sQuery
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "pubs", "sa", ""

sQuery = "SELECT p.pub_id, p.pub_name, t.title_id, t.title AS title_name, " & _
"ta.au_id, a.au_fname + ' ' + a.au_lname AS au_name " & vbCrlf & _
"FROM publishers p, titles t, titleauthor ta, authors a " & vbCrlf & _
"WHERE p.pub_id=t.pub_id " & vbCrlf & _
" AND ta.title_id=t.title_id " & vbCrlf & _
" AND a.au_id = ta.au_id " & vbCrlf & _
"ORDER BY pub_name, title, ta.au_ord "

%>
<FORM id=form1 name=form1>

<%
Response.Write TripleLinkedList(Conn, sQuery, "fieldname", 10, "pub_name", "title_name", "au_name", "au_id")

Conn.Close
Set Conn = Nothing
%>
<P>
<INPUT TYPE=SUBMIT NAME="foo" VALUE="Buy This Car!">
</FORM>
</BODY>
</HTML>

<%

Function TripleLinkedList(oCon, sQuery, sFormFieldName, nSize, sDBField1, sDBField2, sDBField3, sDBFieldResult)

Dim sTemp ' general-purpose temp variable
Dim sScript ' bucket for holding the script structure
Dim sSelect ' bucket for the <SELECT> statement
Dim sArray1 ' bucket to store the DBField2 array
Dim nField1 ' counter for the primary array
Dim sArray2 ' bucket to store the DBField3 array
Dim nField2 ' counter for the secondary array
Dim rs ' recordset
Dim sLastVal1 ' comparison string to test for record changes
Dim sLastVal2 ' comparison string to test for record changes

On Error Resume Next
If Not IsObject(oCon) Then
sScript = "error processing triplelist -- need a connection object."
ElseIf oCon.State <> 1 Then
If Err.number <> 0 Then
sScript = "error processing triplelist -- invalid connection object."
Else
sScript = "error processing triplelist -- connection is not open."
End If
Else
Set rs = oCon.Execute(sQuery)
If Err.number <> 0 Then
sScript = "error processing query. Error " & Hex(Err.number) & ": " & Err.Description
ElseIf rs.EOF Then
sScript = "no records found -- seems wrong"
Else
On Error Goto 0

sScript = "<SCR" & "IPT LANGUAGE=""JavaScript"">" & vbCrlf
sScript = sScript & "var array1 = new Array();" & vbCrlf
sScript = sScript & "var array2 = new Array();" & vbCrlf

sSelect = "<SELECT NAME=""" & sFormFieldName & "1"" SIZE=""" & nSize & _
""" ONCHANGE=""return(clickcombo(1,document.forms[0]." & _
sFormFieldName & "1,document.forms[0]." & sFormFieldName & _
"2,document.forms[0]." & sFormFieldName & "3));"">" & vbCrlf


sLastVal1 = "empty"
Do Until rs.EOF
If rs(sDBField1) <> sLastVal1 Then

If Right(sArray1, 3) = "," & vbCrlf Then

sArray1 = Left(sArray1, Len(sArray1) - 3)
End If
If Len(sArray1) > 0 Then
sArray1 = sArray1 & ");" & vbCrlf
End If

nField1 = nField1 + 1
sLastVal1 = rs(sDBField1)

sSelect = sSelect & "<OPTION VALUE=" & nField1 & ">" & sLastVal1 & "</OPTION>"

sArray1 = sArray1 & "array1[" & nField1 & "] = new Array(" & vbCrlf

nField2 = 0
sLastVal2 = "empty"
End If
If sLastVal2 <> rs(sDBField2) Then

If Right(sArray2, 3) = "," & vbCrlf Then

sArray2 = Left(sArray2, Len(sArray2) - 3)
End If
If Len(sArray2) > 0 Then
sArray2 = sArray2 & ");" & vbCrlf
End If

sLastVal2 = rs(sDBField2)
nField2 = nField2 + 1

sArray1 = sArray1 & " " & 1000 * nField1 + nField2 & ",""" & sLastVal2 & """," & vbCrlf

sArray2 = sArray2 & "// values for " & sLastVal2 & vbCrlf
sArray2 = sArray2 & "array2[" & 1000 * nField1 + nField2 & "] = new Array(" & vbCrlf
End If

sArray2 = sArray2 & " " & rs(sDBFieldResult) & ",""" & rs(sDBField3) & """," & vbCrlf
rs.MoveNext ' move on to the next record...
Loop


If Right(sArray2, 3) = "," & vbCrlf Then

sArray2 = Left(sArray2, Len(sArray2) - 3)
End If
If Len(sArray2) > 0 Then
sArray2 = sArray2 & ");" & vbCrlf
End If

If Right(sArray1, 3) = "," & vbCrlf Then

sArray1 = Left(sArray1, Len(sArray1) - 3)
End If
If Len(sArray1) > 0 Then
sArray1 = sArray1 & ");" & vbCrlf
End If

sSelect = sSelect & "</SELECT>" & vbCrlf
sSelect = sSelect & "<SELECT NAME=""" & sFormFieldName & "2"" SIZE=""" & nSize & _
""" ONCHANGE=""return(clickcombo(2,document.forms[0]." & sFormFieldName & _
"1,document.forms[0]." & sFormFieldName & "2,document.forms[0]." & _
sFormFieldName & "3));""><OPTION>Nothing Selected</OPTION></SELECT>" & vbCrlf
sSelect = sSelect & "<SELECT NAME=""" & sFormFieldName & "3"" SIZE=""" & nSize & _
"""><OPTION>Nothing Selected</OPTION></SELECT>" & vbCrlf

sScript = sSelect & vbCrlf & _
sScript & vbCrlf & _
sArray1 & vbCrlf & _
sArray2 & vbCrlf & _
"</SCR" & "IPT>" & vbCrlf

End If

rs.Close
Set rs = Nothing
End If

TripleLinkedList = sScript
End Function
%>
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 14:34.