Lier des listes deroulantes

cs_abro Messages postés 5 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 28 septembre 2011 - 27 sept. 2011 à 18:11
cs_abro Messages postés 5 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 28 septembre 2011 - 28 sept. 2011 à 18:32
Bjr a tous,
ma préocupation c'est de pouvoir remplir trois liste deroulantes les unes en fonction des autres.
la 1ere liste se charge grace a un select dans la base mysql.
le but est donc qu'après le choix dans la premiere liste,la 2eme preme la valeur choisie et recupere les infos dans la base et il en sera ainsi pour la 3eme avec la 2eme.
Un peu compliqué n'est-ce pas?? :)
j'espere trouver de l'aide.merci


abrochou

2 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
27 sept. 2011 à 18:17
Bonjour,

Tout d'abord quelle type d'interface utilises tu ? Swing, jee, autre ?

Si tu utilises Swing, est ce que c'est ca que tu veux faire : http://www.javafr.com/codes/PICKLIST-LISTE-PRELEVEMENT-SWING_53524.aspx
0
cs_abro Messages postés 5 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 28 septembre 2011
28 sept. 2011 à 18:32
Re_bonjour
Merci pour ton lien mais
En fait Je développe avec eclipse,tomcat et mysql donc les listes en question sont sur ma page .jsp .
La solution que j'ai trouvé est la suivante:
(La 1ere marche, la 2eme aussi mais apres renvoi de la page,le choix de la 1ere disparait,et je ne trouve pas le moyen de faire marcher la 3eme si je reste dans la meme logique...)

<!-- LISTE DEROULANTE POUR LES PAYS -->

<select name="pays" onchange="renvoi(this)">
//renvoi(this) pour renvoyer le form avec choix_pays en parametre

<option value="">-- Liste des pays --</option>

<% String url = "jdbc:mysql://localhost...";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, "log", "pass");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT nom_pays FROM pays");
while(rs.next()){
String pnom=rs.getString(1);
%>

<option value="<% out.println(pnom); %>"><% out.println(pnom); %></option>

<%
}
rs.close();
%>

</select>

<!-- LISTE DEROULANTE DES OPERATEURS EN FONCTION DU PAYS CHOISI -->

<select name="operateur" >
<option>-- Liste des opérateurs --</option>

<% String lepays ="" ;
if(request.getParameter("choix_pays")!= null){
lepays=request.getParameter("choix_pays");
String url1 = "jdbc:mysql://localhost...";
Class.forName("com.mysql.jdbc.Driver");
connection con1 = DriverManager.getConnection(url1, "log", "pass");
Statement stmt1 = con1.createStatement();
ResultSet rs1 = stmt1.executeQuery("SELECT o.nom_operateur FROM operateur") and ("o,pays p,pays_operateur ps where p.nom_pays='"+ lepays +"' AND")
and ("p.id_pays=ps.id_pays AND ps.id_operateur=o.id_operateur");
while(rs1.next()){
String opnom = rs1.getString(1);
%>

<option><% out.println(opnom); %></option>

<%}
rs1.close();
}
%>
</select>

<!-- LISTE DEROULANTE DES RUBRIQUES EN FONCTION DE L'OPERATEUR CHOISI -->

<select name="rubrique">
<option>-- Liste des rubriques --</option>

<%
String larubrique ="" ;
if(request.getParameter("choix_operateur")!= null){
larubrique=request.getParameter("choix_operateur");
String url2 = "jdbc:mysql://...";
Class.forName("com.mysql.jdbc.Driver");
Connection con2 = DriverManager.getConnection(url2, "root", "");
Statement stmt2 = con2.createStatement();
ResultSet rs2 = stmt2.executeQuery("SELECT r.libelle_rubrique FROM operateur o,rubriques r,rubriques_operateur rs where o.nom_operateur='"+ larubrique +"' AND o.id_operateur=rs.id_operateur AND rs.id_rubrique=r.id_rubrique");
while(rs2.next()){
String rubnom = rs2.getString(1);
%>
<option><% out.println(rubnom); %></option>
<%
}
rs2.close();
}
%>
</select>
abrochou
0