Buenas a todos, espero que esten teniendo un buen día y sin aburrirlos más voy 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, he buscado mucho y bueno he encontrado muchos tutoriales en el que usan Javascript, y apesar de seguirlos al pie de la letra nunca me resulta
(Cabe aclarar que jamás en mi vida e usado javascript) otros proponen el uso de AJAX pero nisiquiera se implementarlo ahaha, bueno, les dejo mi codigo para ver si me pueden brindar su ayuda n,n
Código Java:
Ver original<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Eliminar Métricas</title>
</head>
<body>
<form name="frmEliminar" method="POST" id="frm_del">
<table style=" border: 0px; font-family: Verdana; background-color: gainsboro;
font-size: 12px; text-align: left; box-shadow: black 0px 1px 10px 0px">
<tbody>
<tr>
<td>Nombre de Aplicación</td>
<td><select style="width: 317px" id="cmbAN" name="cmbApplicationName">
<option value="">--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>
// HASTA AQUÍ NO TENGO PROBLEMAS, PERO NECESITO CARGAR LA INFO DE ESTE COMBO, BASANDOSE EN LA SELECCIÓN DEL COMBO ANTERIOR
<td>Nombre de Transacción</td>
<td><select id="cmbTN" name="cmbTransactionName">
<option value="">--Seleccione--</option>
<option value=""></option>
</select></td>
</tr>
</tbody>
</table>
<br>
<input type="submit" value="BUSCAR" name="btnBuscar" /> <input type="submit" value="ELIMINAR" name="btnEliminar" />
</form>
</body>
<html>
Este es el codigo de mi clase ApplicationDao (La cual contiene la query)
Código Java:
Ver original// Crea y devuelve una lista (ArrayList) con la ID y nombre de las aplicaciones.
public static ArrayList<Application> listarAplicaciones(){
ArrayList<Application> aplicaciones = new ArrayList<Application>();
try {
String query
= " USE SyntheticMonitoring " + "SELECT ApplicationID, ApplicationName "
+ "FROM Applications";
while(rs.next()){
Application aplicacion = new Application();
aplicacion.setIdApplication(rs.getInt("ApplicationID"));
aplicacion.setNameApplication(rs.getString("ApplicationName"));
aplicaciones.add(aplicacion);
}
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 aplicaciones;
}
Esta es la clase TransactionDao donde tengo la query de las transacciones (La que pide la ID de aplicación como parametro) *Nota: no se si debería tener este metodo como "estatico" aunque no se si esto afecta negativamente la carga del cmb"
Código Java:
Ver originalpublic static ArrayList<Transaction> listarTransacciones(int appID){
ArrayList<Transaction> trans = new ArrayList<Transaction>();
try {
String query
= " USE SyntheticMonitoring " + "SELECT TransactionID, TransactionName "
+ "FROM Transactions "
+ "WHERE 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;
}
Aquí una fotito de lo que quiero hacer hahaha ( Explicado con manzanas ahhaha
)
No es necesario hacer exactamente lo que tenía planeado con el Onchange, pero si obtener el mismo resultado :c
Bueno chicos, espero que puedan ayudarme con esto, ya que no soy muy experto en el tema, agradecería cualquier ayuda, muchas gracias n-n