Juste pour info, une écriture de ton code un peu plus belle, à mon avis. Ce qui n'engage que moi bien sûs :
<p align="center"> <font face="Broadway" size ="3"><select name="codetype">
<%String type = request.getParameter("type_produit");
String libelle = request.getParameter("libelle");%>
<option value=<%=type%>><%=libelle %></option>
<%Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/projet", "root", "mysql");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT libelle, codetype FROM type where codetype <> '"+ type +"';");
String code = new String();
String lib = new String();
while(rs.next() != null ){
%>
<option value=<%=rs.getString(2)%>><%=rs.getString(1) %>
<% }%>
</option></select></font></p>
Mais surtout, si on utilise toutes les possibilitées du HTML... on en vient avec le code suivant :
<p align="center"> <font face="Broadway" size ="3"><select name="codetype">
<%String type = request.getParameter("type_produit");
<%Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/projet", "root", "mysql");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT libelle, codetype FROM type;");
String check;
while(rs.next() != null ){
if (type.equal(rs.getString(2))) {
check="selected";
} else {
check="";
}
%>
<option value=<%=rs.getString(2)%> <%=check%>><%=rs.getString(1) %>
<% }%>
</option></select></font></p>
Tu ne passe plus qu'un seul paramètre, celui du code du produit choisit.
Le fait de mettre "selected" sur un élèment de la liste positionne directement la liste sur cette valeur.
De plus, il serait bon de mettre les paramètres connexions à ta base en constante dans ton application ou mieux dans un fichier de configuration. En effet, si ton serveur change, tu devras changer toutes tes pages, ce qui est :
fastidieux
source de bug (un oubli est toujours possible)
dangereux (si le serveur ne compile pas ta page pour une raison ou une autre, tu communique l'information à l'utilisateur de la page, sur les forums etc...)
Je ne rentres pas dans le problème et toutes les discussions sur les requêtes dans les JSP, mais ça c'est vraiment important à s'en soucier. En effet, normalement une application change de base selon son sycle de développement (base de développement, base de validation, base de production). C'est une problèmatique très classique en informatique.
Juste pour info, une écriture de ton code un peu plus belle, à mon avis. Ce qui n'engage que moi bien sûs :
Mais surtout, si on utilise toutes les possibilitées du HTML... on en vient avec le code suivant :
Tu ne passe plus qu'un seul paramètre, celui du code du produit choisit.
Le fait de mettre "selected" sur un élèment de la liste positionne directement la liste sur cette valeur.
De plus, il serait bon de mettre les paramètres connexions à ta base en constante dans ton application ou mieux dans un fichier de configuration. En effet, si ton serveur change, tu devras changer toutes tes pages, ce qui est :
fastidieux source de bug (un oubli est toujours possible)
Je ne rentres pas dans le problème et toutes les discussions sur les requêtes dans les JSP, mais ça c'est vraiment important à s'en soucier. En effet, normalement une application change de base selon son sycle de développement (base de développement, base de validation, base de production). C'est une problèmatique très classique en informatique.dangereux (si le serveur ne compile pas ta page pour une raison ou une autre, tu communique l'information à l'utilisateur de la page, sur les forums etc...)