ASP - Problema urgente con combos en asp

 
Vista:

Problema urgente con combos en asp

Publicado por Gustavo (27 intervenciones) el 26/01/2007 14:58:02
hola necesito ayuda urgente con este tema,kiero enlazar tres combos,cuando eligo la una categoria del primero me muestra la subcategoria en el segundo ,y cuando eligo una categoria del segundo me muestra la subcategoria en el tecero.sin perder los datos de los otros dos,osea que me los siga mostrando,los datos son traidos de una base de datos en access.este es mi codigo ,si alguien lo puede mandar arreglado o mandarme un codigo ya hecho estare totalmente agradecido igual desde ya muchas gracias.
Saludos
este es el codigo:
la base de datos tiene estas tablas
tabla = categoria --> campos = idcategoria ,categoria
tabla = precio --> campos = idproducto, precio
tabla = producto --> campos = idproducto ,idcategoria,precio
<%
set cn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")
cn.open "provider=microsoft.jet.oledb.4.0; data source=c:/inetpub/wwwroot/tresoption.mdb;"

%>
<html>
<head>
<script language="javascript">
function mostrar(){
document.form1.submit();
}
function mostrar1(){
document.form2.submit();

}
</script>
</head>
<body>
<form name="form1" method="get" action="#">
<select name="cmbcategoria" onChange="mostrar()">
<%
sql="select * from categoria"
rs.open sql,cn
while not rs.eof
seleccion=""
if rs("idcategoria")=int(request.querystring("cmbcategoria")) then
seleccion="selected"
end if
response.write("<option value="&rs("idcategoria")&" "&seleccion&">"&rs("categoria")&"</option>")
rs.movenext
wend
rs.close
%>
</select>
</form>
<%
valor=request.querystring("cmbcategoria")
if request.querystring("cmbcategoria")<>"" then
sql= "select * from producto where idcategoria="&int(valor)&""
rs.open sql,cn
%>
<form name="form2" method="get" action="#">
<select name="cmbproducto" onChange="mostrar1()">
<%
while not rs.eof
seleccionado=""
if rs("idproducto")=int(request.querystring("cmbproducto")) then
seleccionado="selected"
end if
response.write("<option value="&rs("idproducto")&" "&seleccionado&">"&rs("producto")&"</option>")
rs.movenext
wend
rs.close
%>
</select>
</form>
<% end if %>

<%if request.querystring("cmbproducto")<>"" then

sql="select * from precio where idproducto="&int(request.querystring("cmbproducto"))&""
rs.open sql,cn
%>
<form name="form3" method="get" action="">
<select>

<%
while not rs.eof
response.write("<option>"&rs("precio")&"</option>")
rs.movenext
wend
rs.close
%>
</select>
</form>
<%end if%>
</body>
</html>
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:Problema urgente con combos en asp

Publicado por weirdmix (210 intervenciones) el 29/01/2007 23:51:01
checa este codigo, en primero no creo necesario q tengas 3 tablas, con dos es suficiente. con eso solo tienes q linkear dos combos y no tres, aunque ya despues no deberia causarte problemas.

la primera tabla quedo igual, la segunda tabla ponle el campo idcategoria y la tercera tabla no existe...

solamente use una sola forma para toda la pagina.

es mejor pasar los datos via el metodo post que get. da mas flexibilidad y no muestras los datos tanto.

saludos

cualquier duda me mandas un mail.

<%
set cn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")
cn.open "provider=microsoft.jet.oledb.4.0; data source=c:/inetpub/wwwroot/tresoption.mdb;"

%>
<html>
<head>
<script language="javascript">
/*function mostrar(){
document.form1.submit();
}
function mostrar1(){
document.form2.submit();

} */
</script>
</head>
<body>
<form name="form1" method="post" action="default.asp">
<select name="cmbcategoria" onChange="form1.submit();">
<%
sql="select * from categorias"
rs.open sql,cn
while not rs.eof
seleccion=""
if cint(rs("idcategoria"))=cint(request.form("cmbcategoria")) then
seleccion="selected"
end if
response.write("<option value="&rs("idcategoria")&" "&seleccion&">"&rs("categoria")&"</option>")
rs.movenext
wend
rs.close
%>
</select>

<%
valor=request.form("cmbcategoria")
if valor<>"" then
sql= "select * from productos where idcategoria="&cint(valor)
rs.open sql,cn
%>

<select name="cmbproducto" onChange="form1.submit();">
<%
while not rs.eof
seleccionado=""
if rs("idproducto")=int(request.form("cmbproducto")) then
seleccionado="selected"
end if
response.write("<option value="&rs("idproducto")&" "&seleccionado&">"&rs("descproducto")&"</option>")
rs.movenext
wend
rs.close
%>
</select>
</form>
<% end if
set rs = nothing
set cn = nothing
%>

</body>
</html>
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