Listes déroulantes valeur par défaut
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:
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> |