Buenas a todos, es primera vez que ingreso a este foro y es increíble la cantidad de contenido que hay aquí, y la ayuda que brindan los usuarios es muy buena, es por ello que en esta ocasión requiero de su ayuda hahaha. Bueno directo al grano, resulta que estoy haciendo una aplicación web con JSP, dentro de esta aplicación tengo 2 combobox, 1 combobox carga una lista desde una base de datos, y el segundo combobox debería hacer lo mismo, pero basado en la selección del primer combobox. (Un ejemplo muy común de esto es clasico par de combos "País" y "Ciudad" en el que el segundo solo cargaría las ciudades del país seleccionado)
Bueno a continuación le dejo le codigo de mi JSP, en el cual yo se que me falta hacer algo en la función cargarCTN(), pero bueno hace 10 minutos que comencé a usar Javascript por primera vez en mi vida, por lo que no entiendo mucho.
Código Java:
Ver original<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--Funcion javascript para la carga del combobox/drop-down list de transacciones -->
<script type="text/javascript">
function cargarCTN()
{
//toma la ID de la aplicación seleccionada del combo cmbApplicationName
var seleccion = document.getElementById('cmbAN');
}
</script>
<title>JSP Page</title>
</head>
<body>
<form name="frmEliminar" method="POST">
<table>
<tbody>
<tr>
<td>Nombre de Aplicación</td>
<td><select style="width: 317px" id="cmbAN" name="cmbApplicationName" onchange="cargarCTN()" >
<option>--Seleccione--</option>
<!-- Carga el combobox/drop-down list con las posibles aplicaciones -->
<%for(Application appl: new dao.ApplicationDao().listarAplicaciones()){%>
<option value="<%= appl.getIdApplication() %>"><%= appl.getNameApplication()%></option>
<% }%>
</select></td>
</tr>
<tr>
<td>Nombre de Transacción</td>
<td><select id="cmbTN" name="cmbTransactionName">
<option>--Seleccione--</option>
<%for(Transaction tran: new dao.TransactionDao().listarTransacciones("AQUI VA LA ID OBTENIDA DEL SELECT ANTERIOR (cmbApplicationName)")) {%>
<option value="<%= tran.getIdTransaction() %>"><%= tran.getNameTransaction()%></option>
<%}%>
</select></td>
</tr>
<tr>
<td>Desde: </td>
<td><input name="dtpFechaInicio" id="datetimepicker1" type="text" ></td>
</tr>
<tr>
<td>Hasta: </td>
<td><input name="dtpFechaFin" id="datetimepicker2" type="text" ></td>
</tr>
</tbody>
</table>
<br>
<input type="submit" value="BUSCAR" name="btnBuscar" /> <input type="submit" value="ELIMINAR" name="btnEliminar" />
</form>
</body>
<!-- Jquery para Datetimepicker-->
<link rel="stylesheet" type="text/css" href="jsdtp/jquery.datetimepicker.css">
<script src="jsdtp/jquery.js"></script>
<script src="jsdtp/jquery.datetimepicker.js"></script>
<script>jQuery('#datetimepicker1').datetimepicker();</script>
<script>jQuery('#datetimepicker2').datetimepicker();</script>
</html>
Bueno, prácticamente lo que quiero hacer es que al seleccionar una opción del cmbApplicationName y que a través del onchange este devuelva la ID para ser utilizada como parámetro de entrada para cargar el cmbTransactionName, a continuación les dejo la query que tengo en una clase Java para obtener la lista del cmbTransactionName.
Código Java:
Ver original/** Crea y devuelve una lista (ArrayList) con la ID y nombre
* de las transacciones a base de la ID de una aplicación. */
public static ArrayList<Transaction> listarTransacciones(int appID){
ArrayList<Transaction> trans = new ArrayList<Transaction>();
try {
+ "SELECT TransactionID, TransactionName "
+ "FROM Transactions, Applications "
+ "WHERE Applications.ApplicationID = ?";
listar.setInt(1, appID);
while(rs.next()){
Transaction transaccion = new Transaction();
transaccion.setIdTransaction(rs.getInt("TransactionID"));
transaccion.setNameTransaction(rs.getString("TransactionName"));
trans.add(transaccion);
}
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Error Exception</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>SQLException "+ ex +"</h1>");
out.println("</body>");
out.println("</html>");
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Error Exception</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Exception "+ ex +"</h1>");
out.println("</body>");
out.println("</html>");
}
return trans;
}
Bueno, espero que puedan ayudarme haha, por si a alguno no le quedo claro les dejo un dibujito que demuestra lo que quiero hacer (Suponiendo que es posible hacerlo)
Muchas gracias ^^