Originariamente inviato da francesco.muia
Allora per prima cosa, spero che il database nn l'abbia progettato tu perchè secondo me è orrendo....
Venendo al probleama cioè come popolare un seconda drop-down in base alla scelta di un'altra hai due modi per farlo :
1) "HOLD SCHOOL"
In pratica devi fare in modo che al cambiamento del valore ("onchange") venga effettuata una post / get (segli quello che ti è più comodo) alla stessa pagina con in + il valore scelto. In questo modo nella stessa pagina potrai effettuare un controllo e vedere se esiste quel parametro (getParameter) e popolare la seconda drop-down di conseguenza.
2) "NEW SCHOOL"
Prevede l'uso di ajax (che ti consiglio vivamente di imparare...) grazie ad "ajax" puoi intercettare l'evento onchange della prima dropdown, prenderti il valore e poi effettuare una richiesta, tipicamente verso una servlet, che preso il valore passato ti restituisce i valori da inserire nella seconda dropdown che ovviamente dovrai aggiornare tramite javascript.
Il database non l'ho progettato io (
) e purtroppo ajax non è previsto (avevo pensato di sfruttarlo ma mi è stato risposto un secco NO.)
Veniamo quindi alla HOLD SCHOOL
In linea teorica ci sono .. il problema è a livello codice
Per il momento sono qui:
codice:
<%@ page language="java" %>
<%@page import="java.sql.*,java.util.*"%>
<script language="javascript">
//FARE ONSELECT
</script>
</head>
<body>
<h1>cancella libro
</h1>
<form name="frm" method="post" action="Aggiungi.jsp" >
<table>
<%
try{// connessione al db per selezione genere!
Connection con=null;
ResultSet rst=null;
//Statement stmt=null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/raccolta", "root", "pass");
Statement statement = con.createStatement() ;
rst =statement.executeQuery("Show tables ") ;
%>
<td><tr>Tipologia:<select name="sel"><option value=""><---Select---></option>
<%
while(rst.next()){
String tipo = rst.getString(1);
%><option value="<%= tipo %>"><%=tipo%></option>
<%} rst.close(); statement.close(); %>
</select>
</td></tr>
<%
//Stampa errore
}
catch(Exception e)
{
out.println("Non trovo niente"+e);
}
%>
</table>
</form>
</body>
</html>
Mi creo una nuova dropdown e ok , ma come faccio a popolarla(da db) in base alla select ? Ti ringrazio anticipatamente(anche se mi reindirizzerai a qualcosa di simile va bene)
Avevo pensato anche a una query che facesse la DELETE FROM tutte_le_tab_database WHERE campo="quello selezionato" , ma non c'è soluzione