bonjour à tous
cela fait quelques jours que je bosse sur un petit problème.
J'ai bien sur fait des recherches avant de venir, dernier recours pour moi car c'est le meilleur des forums.


je vous explique:
A ne pas oublier je dev en java et le code se trouve dans une jsp
j'ai deux listes déroulantes qui doivent etre liées dynamiquement.
De ce fait j'ai récupéré un petit script qui marche trés bien quand les données sont en dures.jusque la tt va bien.

les problèmes arrivent,

au lieu de ces datas en dures je fais une requete sql pour chacune des deux listes.

le problème est que : voir code explication dessus :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
<form name="frm"> 
	<select size=4 name="A" id="A" onchange="gensel2();">
	<optgroup label="A">
	<option value="ALL">ALL</option>
	<%
//valeur de la BDD
        result = statement.executeQuery("SELECT distinct(A) FROM maTable   
        order by A");
        //récupere les enregistrements                                    
        while (result.next())
        {
            A= result.getString("A");
            out.print("<option>" + A+ "</option>");
            System.out.println("A= " + A);
        } 
        %>		
	</optgroup> 
	</select>
	//jusqu'ici tout va bien je récupere bien tt les données de A
 
        <select size=4 name="B" id="B"> 
	<optgroup label="B">
	<option value="ALL">ALL</option>
	<%
       //dans ma requete je fais une clauseWHERE pour aller récupérer la var A
     //selectionnée dans la premiere liste mais A = dernier enregistrement du  
     resultSet
        result = statement.executeQuery("SELECT distinct(B),A FROM maTable 
        where A like'"+A+"' order by B");                                                  
        while (result.next())
        {
              B= result.getString("B");
              out.print("<option>" + B+ "</option>");
               System.out.println("B= " + latticecode);
        } 
                
        %>			
	</optgroup> 
	</select> 
	</form>
puis le code js
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<script type="text/javascript">
function gensel2() 
{ 
     s2.length=0; 
     for( var n=0; n<liste[s1.selectedIndex].length; n++ )
     { 
        s2.length++; s2.options[s2.length-1].text=liste[s1.selectedIndex][n]; 
     } 
}
 
        var s1=document.getElementById("techno"); 
        var s2=document.getElementById("latticecode"); 
        var liste=new Array(s2);
</script>
Pouvez vous m'aider svp.