Liste déroulante en fonction d'une autre liste déroulante
Posté : 08 août 2007, 09:13
Bonjour tout le monde, voila mon problème, je suis entrrain de créer un système d'article pour mon site et j'aimerais quand je rédige un article que quand je selectione une rubrique, lla liste des sous rubrique ce fasse toute seul (pour ne pas avoir toutes les sous rubriques)
voici mon code:
voici mon code:
<html>
<head>
<title></title>
<script>
List = new Array();
function Remplir(valeur){
var sel="";
sel ="<select size='1' name='sousrubrique'>";
// Parcourir le tableau
for (var i=0;i<List.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie
if (List[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
sel= sel + "<option value="+List[i][0]+">"+List[i][2]+"</option>";
}
}
sel =sel + "</select>";
// Modifier le DIV scat par la nouvelle List à partir du variable SEL
document.getElementBy'rubrique').innerHTML=sel;
}
</script>
</head>
<body>
<form method="POST" action="Ajout6.php3">
<select size="1" name="rubrique" OnChange="Remplir(rubrique.value)">
<?php
// Paramètres de la Connexion à la base MYSQL
$user="xx";
$host="xx";
$password="xx";
$database="xx";
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");
mysql_select_db($database,$connexion);
// Séléction de tous les enregistrements de la table Catégorie
$rq="Select * from rubrique order by id;";
$result= mysql_query ($rq) or die ("Select impossible");
while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante des catégorie
echo "\t\t<option value=".($dt[0]).">".($dt[1])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}
?>
</select><br><br>
<DIV id="scat">
<select size="1" name="sousrubrique">
</select>
</DIV>
<?php
// Séléction de tous les enregistrements de la table Sous-Catégorie
$rq="Select * from sousrubrique order by rubrique;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
// Remplir le tableau (array) en javascript
// ex : List[1]=new Array (1,1,"Sous-catégorie 1");
// ex : List[2]=new Array (2,1,"Sous-catégorie 2");
echo "<script>List[".$i."] = new Array(".($dt[0]).",".($dt[1]).",'".($dt[2])."');</script>";
$i=$i+1; // Incrémentation de $i
}
echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
// des sous-catégories en utilisant la valeur j
?>
<br><br>
<input type="submit" name="Send" value="Envoyer">
</form>
</body>
</html>
voici le code de mes 2 tables sql:
Code : Tout sélectionner
CREATE TABLE `rubrique` (
`id` int(11) NOT NULL auto_increment,
`rubrique` varchar(250) collate utf8_unicode_ci NOT NULL,
`contenu` text collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;
CREATE TABLE `sousrubrique` (
`id` int(11) NOT NULL auto_increment,
`sousrubrique` varchar(250) collate utf8_unicode_ci NOT NULL,
`contenu` text collate utf8_unicode_ci NOT NULL,
`rubrique` varchar(250) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;