| |||
| Re: necesito direccion de combos enlazados con asp holas tengo un combo que lo lleno de la base de datos, necesito que me despliegue los valores en el segundo dependiendo de lo seleccionado en el primero(con asp , sin arreglos) |
| ||||
| Cita: ---------------
Iniciado por yoyi2002 holas tengo un combo que lo lleno de la base de datos, necesito que me despliegue los valores en el segundo dependiendo de lo seleccionado en el primero(con asp , sin arreglos) carga manualmente las opciones del select o con un while de tu result set, incrementalo en uno, tengo una funcion, que puede solucionar el llenano var sElemento ="" Response.Write("<select name='"+NombreCombo+"' "+ Eventos +" >") if (Todos != "") { sElemento = "<option value='-1'" if (Seleccionado == -1) { sElemento += " selected " } sElemento += ">"+Todos+"</option>" Response.Write(sElemento) } var CCSQL = "SELECT " + CampoID +", " + CampoDescripcion + " FROM " + Tabla if (Condicion != "") { CCSQL += " WHERE " + Condicion } if (Orden != "") { CCSQL += " ORDER BY " + Orden } Response.Write("<br>CCSQL: " + CCSQL) var rsCC = AbreTabla(CCSQL,1,Conexion) while (!rsCC.EOF){ sElemento = "<option value='"+rsCC.Fields.Item(0).Value+"'" if (Seleccionado == rsCC.Fields.Item(0).Value) { sElemento += " selected " } sElemento += ">"+rsCC.Fields.Item(1).Value+"</option>" Response.Write(sElemento) rsCC.MoveNext()} rsCC.Close() Response.Write("</select>") ahora, una vez que tu llenaste tu combo, en el evento onchange ejecuta un javascript que te haga un submit y com parametro mandas el nombre del combo que estas cambiando, y cuando la pagina (haciendo el submit sobre ella misma) se recargue, condiciona tu segundo combo, el parametro tiene tal valor, entonces, que haga un select,(el que tu decidas) y listo, ahora tienes un combo que depende de otro, si quieres otro ejemplo mas claro, responde a [email protected] |
| ||||
| Cita: ---------------
Iniciado por yoyi2002 holas tengo un combo que lo lleno de la base de datos, necesito que me despliegue los valores en el segundo dependiendo de lo seleccionado en el primero(con asp , sin arreglos) carga manualmente las opciones del select o con un while de tu result set, incrementalo en uno, tengo una funcion, que puede solucionar el llenano var sElemento ="" Response.Write("<select name='"+NombreCombo+"' "+ Eventos +" >") if (Todos != "") { sElemento = "<option value='-1'" if (Seleccionado == -1) { sElemento += " selected " } sElemento += ">"+Todos+"</option>" Response.Write(sElemento) } var CCSQL = "SELECT " + CampoID +", " + CampoDescripcion + " FROM " + Tabla if (Condicion != "") { CCSQL += " WHERE " + Condicion } if (Orden != "") { CCSQL += " ORDER BY " + Orden } Response.Write("<br>CCSQL: " + CCSQL) var rsCC = AbreTabla(CCSQL,1,Conexion) while (!rsCC.EOF){ sElemento = "<option value='"+rsCC.Fields.Item(0).Value+"'" if (Seleccionado == rsCC.Fields.Item(0).Value) { sElemento += " selected " } sElemento += ">"+rsCC.Fields.Item(1).Value+"</option>" Response.Write(sElemento) rsCC.MoveNext()} rsCC.Close() Response.Write("</select>") ahora, una vez que tu llenaste tu combo, en el evento onchange ejecuta un javascript que te haga un submit y com parametro mandas el nombre del combo que estas cambiando, y cuando la pagina (haciendo el submit sobre ella misma) se recargue, condiciona tu segundo combo, el parametro tiene tal valor, entonces, que haga un select,(el que tu decidas) y listo, ahora tienes un combo que depende de otro, si quieres otro ejemplo mas claro, responde a [email protected] |
| |||
| Mira este codigo es de lexus originalmente en este foro, espero que te sirva Cita:
Iniciado por lexus http://www.asptutor.com/asp/vart.asp?id=102
Código:
<html>
<head>
<title>Combos combinados</title>
<script language = "JavaScript">
<%'CONSULTA PARA OBTENER LOS DATOS
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\database\hard.mdb"))
productos_Sql = "Select distinct familia, codigo, denominacion from articulos "
set rs = CreateObject("ADODB.Recordset")
rs.Open productos_Sql, Conn
x=0
%>
// FUNCION DE COMBO BOX COMBINADO
function sublist(inform, selecteditem)
{
inform.subcatagory.length = 0
<%
count= 0
y=0
do while not rs.eof
%>
x = <%= trim(y) %>;
subcat = new Array();
subcatagorys = "<%=(rs("codigo"))&" "&(rs("denominacion")) %>";
subcatagoryof = "<%=(rs("familia"))%>";
subcatagoryid = "<%=(rs("codigo"))%>";
subcat[x,0] = subcatagorys;
subcat[x,1] = subcatagoryof;
subcat[x,2] = subcatagoryid;
if (subcat[x,1] == selecteditem) {
var option<%= trim(count) %> = new Option(subcat[x,0], subcat[x,2]);
inform.subcatagory.options[inform.subcatagory.length]=option<%= trim(count)%>;
}
<%
count = count + 1
y = y + 1
rs.movenext
loop
rs.close
%>
}
</script>
</head>
<body bgcolor="#CDB1B7">
<h2 align="center"><b><i><font color="#AE1732"><u>Combo-box enlazados </u></font></i></b></h2>
<form name="prueba">
<div align="center">
<center>
<table border="0" width="80%">
<tr>
<td width="77%">
<select size="1" id="familia" name="familia" onChange = "javascript:sublist(this.form, familia.value);">
<option selected>Selecciona una familia</option>
<%familias_Sql = "Select distinct id,familia from familias"
rs.Open familias_Sql, Conn
do while not rs.eof
%>
<option value="<%=rs("id")%>"><%=rs("familia")%></option>
<%rs.movenext
loop
set rs=nothing
conn.close
set conn=nothing%>
</select> <SELECT id="subcatagory" name="subcatagory" size="1">
<Option selected value="none"></option>
</SELECT></td>
<td width="9%">
<p align="left">
</p>
</td>
</tr>
</table>
</center>
</div>
<center>
</form>
</center>
</body>
</html>
__________________ JOSE GARCIA :-) :arriba: |
| |||
| Al colocar la sgte. función en mi página asp. no lo puedo visualizar en el navegador de internet explorer. pero si quito la función si puedo ver mi página. alguien sabe porqué ocurre eso?? function sublist(inform, selecteditem) { inform.subcatagory.length = 0 <% count= 0 y=0 do while not rs.eof %> x = <%= trim(y) %>; subcat = new Array(); subcatagorys = "<%=(rs("codigo"))&" "&(rs("denominacion")) %>"; subcatagoryof = "<%=(rs("familia"))%>"; subcatagoryid = "<%=(rs("codigo"))%>"; subcat[x,0] = subcatagorys; subcat[x,1] = subcatagoryof; subcat[x,2] = subcatagoryid; if (subcat[x,1] == selecteditem) { var option<%= trim(count) %> = new Option(subcat[x,0], subcat[x,2]); inform.subcatagory.options[inform.subcatagory.length]=option<%= trim(count)%>; } <% count = count + 1 y = y + 1 rs.movenext loop rs.close %> } |