Bonjour,

Voici mon probl�me, je d�sire faire un formulaire avec 3 liste d�roulantes dynamiques.
Le choix de la premi�re liste affectant la seconde, le choix de la seconde affectant la troisi�me.

Pour chaque liste, le remplissage s'effectue � chaque fois par une requ�te mysql avec des param�tres diff�rents suivant la valeur trouv� � la liste pr�c�dente.

Voici le code que j'ai produit partie html :

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
 
<?php //Déclaration de variables utiles (valeurs des fieldid)
$fieldid_departement = 59;
$fieldid_type = 67;
$fieldid_type_sport = 70;
$fieldid_type_sorties = 71;
$fieldid_type_loisirs = 72;
$fieldid_activite_sportcombat = 73;
$fieldid_activite_sportnautique = 75;
$fieldid_activite_sportequestre = 74;
?>
 
 
<!--  GESTION DU TYPE -->
<div id='type'>
<select id='type_liste' name='type_liste' style='width:160px;' onChange='change_type();'>
<?php
        $resultat_type = mysql_query('SELECT fieldtitle FROM jos_comprofiler_field_values WHERE fieldid ='.$fieldid_type);
        while($row = mysql_fetch_array($resultat_type))
        {
                echo '<option >'.$row["fieldtitle"].'</option>';
        }
?>	
</select>
</div>
 
<div id='Sports' class='select' style='display:block;'>
<select id='typeliste' name='typeliste' style='width:160px;' onChange='change_categorie()'>
<?php
        $resultat_typelistsport = mysql_query('SELECT fieldtitle FROM jos_comprofiler_field_values WHERE fieldid ='.$fieldid_type_sport);
        while($row = mysql_fetch_array($resultat_typelistsport))
        {
                echo '<option >'.$row["fieldtitle"].'</option>';
        }
?>
</select>
</div>
 
<div id='Sorties' class='select' style='display:none;'>
<select id='typeliste' name='typeliste' style='width:160px;' onChange='change_categorie()'>
<?php
        $resultat_typelistsorties = mysql_query('SELECT fieldtitle FROM jos_comprofiler_field_values WHERE fieldid ='.$fieldid_type_sorties);
        while($row = mysql_fetch_array($resultat_typelistsorties))
        {
                echo '<option >'.$row["fieldtitle"].'</option>';
        }
?>
</select>
</div>
 
<div id='Loisirs' class='select' style='display:none;'>
<select id='typeliste' name='typeliste' style='width:160px;' onChange='change_categorie()'>
<?php
        $resultat_typelistloisirs = mysql_query('SELECT fieldtitle FROM jos_comprofiler_field_values WHERE fieldid ='.$fieldid_type_loisirs);
        while($row = mysql_fetch_array($resultat_typelistloisirs))
        {
                echo '<option >'.$row["fieldtitle"].'</option>';
        }
?>
</select>
</div>
<!--  FIN GESTION DU TYPE -->
 
 
 
 
 
<!-- GESTION DE LA CATEGORIE -->
<div id='Sport de combat' class='selectcategorie' style='display:block;'>
<select id='typelisteactivite' name='typelisteactivite' style='width:160px;'>
<?php
        $resultat_categorie_combat = mysql_query('SELECT fieldtitle FROM jos_comprofiler_field_values WHERE fieldid ='.$fieldid_activite_sportcombat);
        while($row = mysql_fetch_array($resultat_categorie_combat))
        {
                echo '<option >'.$row["fieldtitle"].'</option>';
        }
?>
</select>
</div>
 
<div id='Sport équestre' class='selectcategorie' style='display:none;'>
<select id='typelisteactivite' name='typelisteactivite' style='width:160px;'>
<?php
        $resultat_categorie_equestre = mysql_query('SELECT fieldtitle FROM jos_comprofiler_field_values WHERE fieldid ='.$fieldid_activite_sportequestre);
        while($row = mysql_fetch_array($resultat_categorie_equestre))
        {
                echo '<option >'.$row["fieldtitle"].'</option>';
        }
?>
</select>
</div>
<!--  FIN GESTION CATEGORIE -->
et mon javascript :

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
 
function change_type()
{
	var type = $('type_liste');
	var selects = $$('div.select');
	for ( var i = 0; i < selects.length; i++ ) {
		if (selects[i].id == type.value ) {
			selects[i].style.display = 'block';
		} else {
			selects[i].style.display = 'none';
		}
	}
}
 
function change_categorie()
{
	var type = $('typeliste');
	var selects = $$('div.selectcategorie');
	for ( var i = 0; i < selectcategorie.length; i++) {
		if (selects[i].id == type.value ) {
			selects[i].style.display = 'block';
		} else {
			selects[i].style.display = 'none';
		}
	}
}
Je peux envoy� ma bdd par MP si besoin. Pour le moment la premi�re liste s'affiche comme il faut, la seconde aussi mais impossible d'afficher correctement la troisi�me.

Je pense que ma fonction change_categorie n'est pas bonne, notemment la d�claration de typeliste.

merci de votre aide

ps:j'ai cherch� sur le forum mais je n'ai trouv� la r�ponse que pour 2 listes dynamiques, jamais 3 et pas en sql