Lier des listes deroulantes

Signaler
Messages postés
5
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
28 septembre 2011
-
Messages postés
5
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
28 septembre 2011
-
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

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
362
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
Messages postés
5
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
28 septembre 2011

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