Bonjour,

J'aimerai construire des listes dynamiques à partir d'un champ de ma table, biensûr j'ai fait une recherche sur google et j'ai trouvé de quoi générer des listes avec deux tables différentes, ce qui est très bien.
Ma table très simplifiée pour l'exemple se présente ainsi pour les deux champs concernés :
Pour ma première liste déroulante, elle pourrait contenir (radiateur energetique et accessoires, VisioTree Teflon valves, chauffe-eau frittes robinet...), ma deuxième liste déroulante pourrait contenir (Rondelle Complete Piston, Boite 58 489 (ea), Levier pression, Complete Piston...=
Si on choisit VisioTree Teflon valves dans la première colonne, il faut que dans la deuxième colonne, se génère automatiquement rondelle menesse yu, rondelle basic et rondelle classic par exemple puisque ce sont les caractéristiques pour ces valves là.
Je ne sais pas bien comment faire. Merci pour votre aide :-)

Code mysql : 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
 
Nom                                                                  Caractéristiques
radiateur energetique et accessoires			Rondelle Complete Piston
radiateur energetique et accessoires			Rondelle Complete Piston
radiateur energetique et accessoires			Boite 58 489 (ea)
radiateur energetique et accessoires			Boite 58 489 (ea)
radiateur energetique et accessoires			Levier pression
radiateur energetique et accessoires			Levier pression
radiateur energetique et accessoires			Levier pression58 489 (ea)
radiateur energetique et accessoires			Levier pression
radiateur energetique et accessoires			Levier pression
robinet alluminium			
robinet alluminium			
robinet alluminium				
radiateur steel preparative et accessoires			Complete Piston
radiateur steel preparative et accessoires			Complete Piston
radiateur steel preparative et accessoires			Complete Piston
radiateur steel preparative et accessoires			Replacement Piston/Frit, 2μm
radiateur steel preparative et accessoires			Replacement Piston/Frit, 2μm
radiateur steel preparative et accessoires			Replacement Piston/Frit, 2μm
chauffe-eau frittes robinet			
chauffe-eau frittes robinet			
VisioTree Teflon Kits			
VisioTree Teflon Kits			
VisioTree Teflon Kits			
VisioTree Teflon valves			rondelle menesse yu
VisioTree Teflon valves			rondelle menesse yu
VisioTree Teflon valves			rondelle menesse yu
VisioTree Teflon valves			rondelle menesse yu
VisioTree Teflon valves			rondelle Basic
VisioTree Teflon valves			rondelle Basic
VisioTree Teflon valves			rondelle Basic
VisioTree Teflon valves			rondelle Basic
VisioTree Teflon valves			rondelle Basic
VisioTree Teflon valves			rondelle Classic
VisioTree Teflon valves			rondelle Classic


Et le petit code qui va bien pour trois listes dynamiques mais sur trois tables différentes...

Code php : 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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
 
 
 
//connexion base
 
if(isset($_POST['ok'])){
 //le bouton ok du formulaire a été cliqué
 $ville=isset($_POST['ville']) ? $_POST['ville'] : "";
 $sql3 = "SELECT lien, ville FROM liens_villes WHERE id_ville='".$ville."'";
 $rech_lien= mysql_query($sql3) or die('Pb requette lien '.mysql_error());
 $ligne=mysql_fetch_assoc($rech_lien);
 $lien=$ligne['lien'];
 //on redirige directement vers la page du lien
 header('Location:'.$lien.'');
}
///
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
 
/* On récupère si elle existe la valeur de la région envoyée par le formulaire */
$idr = isset($_POST['region'])?$_POST['region']:null;
?>
 
<?php
 
/* On récupère si elle existe la valeur de la région envoyée par le formulaire */
$idr = isset($_POST['region'])?$_POST['region']:null;
 
?>
 
<?php
//recupération des selections éventuelles sinon init à vide
 
$region=isset($_POST['region']) ? $_POST['region'] : "";
$departement=isset($_POST['departement']) ? $_POST['departement'] : "";
 
//
//connexion a mysql contarirement à ce qui était dit mysql suffit pendant tout le scipt
//par contre c'est dépassé il faut utiliser PDO::
//pour le moment une solution avec mysql
 
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
<fieldset style="border: 3px double #333399"><legend>Sélectionnez une région</legend>
<select name="region" id="region" onchange="submit();">
<option value="-1">- - - Choix - - -</option>
 
<?php
$sql1 = "SELECT id_region, region FROM region ORDER BY region"; //par orde alpa des noms c'est qd mêm mieux !
 
 
$rech_regions = mysql_query($sql1) or die('Pb requette régions '.mysql_error());
while($ligne = mysql_fetch_assoc($rech_regions)){
//pas besoin de passer par des array
//generation de la ligne option
$option= '<option value="'.$ligne['id_region'].'" ';
if($region==$ligne['id_region']){$option.= ' selected="selected"';} //ça c'est pour conserver la sélection au réafficage suivant
$option.=' >'.$ligne['region'].'</option>';
//affichage de la ligne option
echo $option;
}
mysql_free_result($rech_regions);
?>
</select>
<?php
 
//liste departements
if(isset($_POST['region'])){
if($_POST['region']==-1){
echo 'Vous devez chosir une région';
}else{
?>
<select name="departement" id="departement" onchange="submit();">
<option value="-1">- - - Choisissez un département - - -</option>
<?php
 
$sql2 = "SELECT id_departement, departement FROM departement WHERE id_region='".$region."' ORDER BY departement";
$rech_departement = mysql_query($sql2) or die('Pb requette departement '.mysql_error());
while($ligne = mysql_fetch_assoc($rech_departement)){
 
//generation de la ligne option
$option= '<option value="'.$ligne['id_departement'].'" ';
if($departement==$ligne['id_departement']){$option.= ' selected="selected"';} //ça c'est pour conserver la sélection au réafficage suivant
$option.=' >'.$ligne['departement'].'</option>';
//affichage de la ligne option
echo $option;
}
mysql_free_result($rech_departement);
 
?>
</select>
<?php
}
}
//liste villes
if(isset($_POST['departement'])){
if($_POST['departement']==-1){
echo 'Vous devez chosir un departement';
}else{
?>
<select name="ville" id="ville">
<option value="-1">- - - Choisissez une ville - - -</option>
<?php
 
$sql3 = "SELECT id_ville, ville FROM ville WHERE id_departement='".$departement."'ORDER BY ville";
 
$rech_ville = mysql_query($sql3) or die('Pb requette ville '.mysql_error());
while($ligne = mysql_fetch_assoc($rech_ville)){
 
//generation de la ligne option
$option= '<option value="'.$ligne['id_ville'].'" ';
if($departement==$ligne['id_ville']){$option.= ' selected="selected"';} //ça c'est pour conserver la sélection au réafficage suivant
$option.=' >'.$ligne['ville'].'</option>';
//affichage de la ligne option
echo $option;
}
mysql_free_result($rech_ville);
 
?>
 
</select>
<br /><input type="submit" name="ok" id="ok" value="Envoyer" />
 
<?php
}
}
 
?>
 
</fieldset>
</form>
<?php
/* Terminé, on ferme la connexion */
mysql_close($connexion);
?>
 
</body>
</html>