Bonjour,
J'ai récupéré un script de deux liste déroulantes liées. Je l'ai adapté à ma base et il fonctionne très bien. Lorsque je sélectionne une categorie. ça remplit la seconde liste déroulante.
Je souhaiterai y ajouter une fonctionnalité qui consisterai à faire apparaitre dans ces 2 listes déroulantes liées les valeurs précédentes par défaut.
Ces valeurs précédentes sont postées sous forme de variables. La première variable est $categorie. La seconde est $article.
Est-ce que quelqu'un peut m'aider ? merci par avance.
Voici le script en question .
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 <script type="text/javascript"> var catego = new Array; var articl= new Array; <?php $sql = "SELECT * FROM `" . $tblpref ."categorie` WHERE 1 ORDER BY categorie"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $i=0; while($data = mysql_fetch_array($req)){ echo"catego[$i] = new Array(\"p$i\", \"$data[categorie]\");\n"; $sql2="SELECT *, substring(designation,1,70) as designation FROM `" . $tblpref ."article` WHERE cat = $data[id_cat] and actif != 'non'"; $req2 = mysql_query($sql2) or die('Erreur SQL2 !<br>'.$sql2.'\n'.mysql_error()); $v=0; echo"articl[\"p$i\"] = new Array;\n"; while($data2 = mysql_fetch_array($req2)){ $article= addslashes($data2['article']); echo"articl[\"p$i\"][\"$v\"] = new Array(\"$data2[num]\", \"$article / $data2[designation] / $data2[prix_htva] Euro / $data2[uni] \");\n"; $v= $v+1; } $i=$i +1; } $j = $i ; echo"catego[$j] = new Array(\"p$j\", \"divers\");\n"; echo"articl[\"p$j\"] = new Array;\n"; $sql3="SELECT * FROM `" . $tblpref ."article` WHERE cat = '0' and actif != 'non'"; $req3 = mysql_query($sql3) or die('Erreur SQL3 !<br>'.$sql3.'\n'.mysql_error()); $v=0; while($data3 = mysql_fetch_array($req3)){ echo"articl[\"p$j\"][\"$v\"] = new Array(\"$data3[num]\", \"$data3[article] / $data3[prix_htva] Euro / $data3[uni] \");\n"; $v= $v+1; } ?> function filltheselect2(liste, choix) {switch (liste) { case "categorie": raz2("article"); for (i=0; i<articl[choix].length; i++) { new_option = new Option(articl[choix][i][1],articl[choix][i][0]); document.formu2.elements["article"].options[document.formu2.elements["article"].length]=new_option; } } } function raz2(liste) {l=document.formu2.elements[liste].length; for (i=l; i>=0; i--) document.formu2.elements[liste].options[i]=null; } </script> <select name="categorie" onChange='javascript:filltheselect2(this.name, this.value)'> <script type="text/javascript"> for (i=0; i<catego.length; i++) document.write("<option value=\"" +catego[i][0]+ "\">" +catego[i][1]); </script> </select> <br> <select name="article" > <script type="text/javascript"> for (i=0; i<articl["p0"].length; i++) document.write("<option value=\"" +articl["p0"][i][0]+ "\">" +articl["p0"][i][1]); </script> </select>
Partager