La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/JSP-Java-Server-Page/1151732-combos-dependientes-en-JSP.html

combos dependientes en JSP

combos dependientes en JSP

Publicado por Ignacio B. (1 intervención) el 21/10/2009 20:26:40
Hola a todo el mundo que les gusta compartir el conocimiento....
muxas gracias.

Tengo una aplicacion web en netbeans con dos combos y una base de datos en access
quiero que al hacer click en una opcion de un combo el otro se llene dinamicamente con una consulta....

que debo hacer primero:

1.-crear los combos.
2.-crear un script para obtener la pocicion seleccionada del primer combo // no se si es necesario
3.- donde me conecto a la BD y cuando hago la consulta.
4.- como se carga el combo con el resultSet..........

toda ayuda es bien recibida...
de antemano gracias....................

RE:combos dependientes en JSP

Publicado por acanetico (5 intervenciones) el 30/10/2009 23:42:24
1.- crea tu pagina con los 2 combos, el segundo dentro de un div, obviamente aqui el primero ya esta cargado.

2.- cuando eliges algo en el primero por medio de ajax mandas a llamar otro script donde haces la consulta a la bd dependiendo de tu primer eleccion, obtienes los datos y creas un combo con esos datos, y lo mandas a pantalla dentro del div creado y ya :-D

RE:combos dependientes en JSP

Publicado por eduardin  (6 intervenciones) el 25/02/2010 07:15:42
eso que tu deseas hacer se puede hacer con ajax aqui te dejo un codigo que te puede servir de ejemplo este tiene 3 combos ligados es con mysql y jsp

con uno de los combos de abajo se activa la funcion recuperaResidencia2() que manda a una pagina llamada p4 un parametro llamado persona en la pagina p4 se ejecuta una consulta y dentro dela funcion funcionCallback2() se regresa el resultado de la consulta un combo con los valores de la consulta que se incrusta en la pagina por medio del tag <span id="salida2"> el codigo de p4 esta al final la funcion recuperaResidencia3() hace lo mismo pero llena otro combo.

<html>
<head>
<title>Articulo Vendido</title>
<LINK REL="stylesheet" TYPE="text/css" HREF="ejemplo.css">
</head>
<body BGCOLOR='#2E9AFE' onLoad='Form1.tipo.focus();'>

<script>
var ajax;

function funcionCallback2()
{
// Comprobamos si la peticion se ha completado (estado 4)
if( ajax.readyState == 4 )
{
// Comprobamos si la respuesta ha sido correcta (resultado HTTP 200)
if( ajax.status == 200 )
{
// Escribimos el resultado en la pagina HTML mediante DHTML
document.all.salida2.innerHTML = "<b>"+ajax.responseText+"</b>";
}
}
}

function recuperaResidencia2()
{
// Creamos el control XMLHttpRequest segun el navegador en el que estemos
if( window.XMLHttpRequest )
ajax = new XMLHttpRequest(); // No Internet Explorer
else
ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer

// Almacenamos en el control al funcion que se invocara cuando la peticion
// cambie de estado
ajax.onreadystatechange = funcionCallback2;

// Enviamos la peticion
ajax.open( "GET", "p4.jsp?persona="+document.all.tipo.value, true );
ajax.send( "" );
}

</script>


<script>
var ajax

function funcionCallback3()
{
// Comprobamos si la peticion se ha completado (estado 4)
if( ajax.readyState == 4 )
{
//alert(ajax.responseText);
// Comprobamos si la respuesta ha sido correcta (resultado HTTP 200)
if( ajax.status == 200 )
{
// Escribimos el resultado en la pagina HTML mediante DHTML
document.all.salida3.innerHTML = "<b>"+ajax.responseText+"</b>";
}
}
}

function recuperaResidencia3()
{

// Creamos el control XMLHttpRequest segun el navegador en el que estemos
if( window.XMLHttpRequest )
ajax = new XMLHttpRequest(); // No Internet Explorer
else
ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer

// Almacenamos en el control al funcion que se invocara cuando la peticion
// cambie de estado


ajax.onreadystatechange = funcionCallback3;

// Enviamos la peticion
ajax.open( "GET", "p5.jsp?persona="+document.all.marca.value, true );
ajax.send( "" );
}
</script>

<div align="center">
<img src="BANNER.gif" width="100%" HEIGHT="80">

<form name='Form1' action='InsertarAV.jsp' method='post' onSubmit='return validar(this)'>


<br>

<table class='grid'>

<th colspan='2'>VENTAS</th>

<tr><td>TIPO </td><td>
<select class='errormessage' NAME='tipo' onChange='recuperaResidencia2()'>
<option value=0>Seleccione Uno</option>
<%
while(rsListaRegistros4.next()){
%>
<option value=<%=rsListaRegistros4.getInt(1) %> >
<%=rsListaRegistros4.getString(2) %></option>
<%
}
rsListaRegistros4.close();
%>
</select>
</td></tr>


<tr><td>MARCA </td><td>
<span id="salida2"><select class='errormessage' NAME='marca'>
<option value=0>Seleccione Uno</option>
</select></span>
</td></tr>


<tr><td>ARTICULO </td><td>
<span id="salida3"><select class='errormessage' NAME='articulo'>
<option value=0>Seleccione Uno</option>
</select></span>
</td></tr>

<tr><td>CANTIDAD </td><td><input class='errormessage' type='text' name='cantidad' value='' size='8' maxlength='8'/></td></tr>

<tr><td colspan='2' align='center'><INPUT TYPE=SUBMIT NAME=GRABAR VALUE=Vender /></td></tr>
</table>
</form>
</div>



<br>
<br>
<br>

<div align='center'>

<table border='1' class='grid'>
<th><div align='center'>TIPO</div></th>
<th><div align='center'>MARCA</div></th>

<th><div align='center'>CODIGO</div></th>
<th><div align='center'>CARRO</div></th>
<th><div align='center'>PRECIO</div></th>
<th><div align='center'>CANTIDAD</div></th>
<th><div align='center'>IMPORTE</div></th>
<th></th>
<%
while(rsListaRegistros11.next())
{
%>

<form name='Form2' action='EliminarAV.jsp' method='post' onSubmit='return irAlIndice(this)'>
<input type='hidden' name='codigo' value=<%=rsListaRegistros11.getString(1) %> />
<input type='hidden' name='id_tipo' value=<%=rsListaRegistros11.getString(6) %> />
<input type='hidden' name='cantidad' value=<%=rsListaRegistros11.getString(8) %> />
<input type='hidden' name='tipon' value=<%=rsListaRegistros11.getString(2) %> />
<tr>

<td><%=rsListaRegistros11.getString(2) %></td>

<td><%=rsListaRegistros11.getString(3) %></td>

<td><%=rsListaRegistros11.getString(1) %></td>

<td><%=rsListaRegistros11.getString(4) %></td>
<td><%out.print(formatter.format(rsListaRegistros11.getDouble(5)));%></td>
<td><%=rsListaRegistros11.getString(8) %></td>
<td><%out.print(formatter.format(rsListaRegistros11.getDouble(7)));%></td>
<td align='center'><INPUT TYPE=SUBMIT VALUE=Eliminar></td>

</tr>
</form>
<%
}
rsListaRegistros11.close();
%>


<%
while(rsListaRegistros12.next())
{
%>


<tr>

<td></td>

<td></td>

<td></td>

<td></td>
<td></td>
<td></td>
<td align='center'> TOTAL </td>
<td align='center'><%out.print(formatter.format(rsListaRegistros12.getDouble(1)));%></td>

</tr>

<%
}
rsListaRegistros12.close();
%>

</table>

</div>



<br>
<table width='100%'>
<tr bgcolor='FFFFFF'><td align='right'>
<a href='index.jsp'><img src='indice.jpg' height='30' ></a></td></tr>
</table>
<br><br>

</body>
</html>


p4.jsp


<%@ page import="java.io.*,java.util.*,java.net.*,java.sql.*" %>

<%

//String persona = request.getParameter("persona");

Integer persona =Integer.parseInt(request.getParameter("persona"));


%>

<%!
Connection conConexion2;
Statement scSQL2;
ResultSet rsListaRegistros2;
ResultSetMetaData lsDatos2;
%>

<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
conConexion2 = DriverManager.getConnection("jdbc:mysql://localhost/refaccionaria","root","caballitos");
scSQL2 = conConexion2.createStatement();
rsListaRegistros2 = scSQL2.executeQuery("SELECT distinct m.id_marca,m.marca FROM articulo a,marca m where a.id_marca=m.id_marca and a.id_tipo="+persona+" ORDER BY marca;");
lsDatos2 = rsListaRegistros2.getMetaData();%>

<%
out.println("<select class='errormessage' NAME='marca' onChange='recuperaResidencia3()'>");
out.println("<option value=0>Seleccione Uno</option>");
while(rsListaRegistros2.next())
{
%>

<%
//out.println("<option>"+rsListaRegistros2.getString(1)+"</option>");

out.println("<option value='" + rsListaRegistros2.getString(1) + "'>"+rsListaRegistros2.getString(2)+"</option>");
//out.print(rsListaRegistros2.getString(1));
%>

<%
}
out.println("</select>");
rsListaRegistros2.close();
%>

RE:combos dependientes en JSP

Publicado por mario (1 intervención) el 14/12/2010 06:01:53
HOLA!! estaba buscando lo mismo que vos y encontre una buena solucion usando JQuery en esta pagina: http://sites.google.com/site/apuntesdejava/Home/combo-dependiente-con-jsp-ajax

sino sabes q es jquery te recomiendo aprendas a usarlo ya q te ahroraras mucho trabajo y dolores de cabeza. saludos mario p