
30/06/2004, 06:28
|
| | Fecha de Ingreso: junio-2004
Mensajes: 17
Antigüedad: 20 años, 10 meses Puntos: 0 | |
Solución un poco chapuza Hola,
yo tuve un problema parecido. Tenia dos combos en el que los valores de uno me dependia del valor que se habia seleccionado en otro. Mi solucion, aunque algo chapuza, fue crear un array de valores para cada posible valor del primer combo y cuando seleccionaba el valor en ese combo cargaba el array correspondiente a ese valor.
El codigo seria algo así:
<SCRIPT LANGUAGE='JavaScript'>
<!--
<%
'Se crean arrays de keywords
Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = con
rs.Source = "SELECT * FROM CA_TSUBAREAS_DOC ORDER BY sub_ad_pk, sub_nombre"
rs.Open
Dim indice
Dim area, area1
indice = 0
while not rs.EOF
area1 = Cstr(rs.Fields("sub_ad_pk"))
if (area<>area1) then
' cambio de area, se crea un nuevo array y se inicializa el indice
indice=0
area=Cstr(rs.Fields("sub_ad_pk"))
%>
var opciones<%=area%> = new Array();
<%
end if
%>
opciones<%=area%>[<%=indice%>]=new tuplaOpcion("<%=rs.Fields("sub_pk")%>","<%=rs.Fiel ds("sub_nombre")%>");
<%
indice=indice+1
rs.MoveNext
wend
'Limpiamos objetos
rs.Close
set rs=nothing
%>
-->
</SCRIPT>
Y en el evento OnChange del combo box tienes:
<SELECT NAME='areas' onChange='javascript:cambiarKeywords()'>
donde es codigo del cambiarKeywords() es:
function cambiarKeywords ()
{
// Compone la lista dependiente a partir
// del valor de la opcion escogida en la lista "padre"
var i;
areadoc = document.Form1.areas.options[i].value;
borrarSelect(document.Form1.keywords);
document.getElementById(c_keywords).style.display= "block";
array = eval("opciones" + areadoc);
for (i=0; i<array.length; i++)
{
// añade elementos nuestro combobox
var opcion = new Option( array[i].texto, array[i].valor );
document.Form1.keywords.options[i] = opcion;
}
} |