probleme de listes deroulantes

Répondre
raka
le 14/02/2005 à 16:15
raka
Salut je suis novice en javascript et j'aimerais bien realiser un menu déroulant spécifique.

Je m'explique:
A la base, j'ai un menu deroulant comme celui ci:
http://users.skynet.be/ti3work/test.JPG
Ce menu contient une liste de categorie et lorsque je clique sur une des categorie j'aimerais bien faire apparaitre dans un autre menu les sous catégorie correspondant a la catégorie cliquée (comme si dessous)
http://users.skynet.be/ti3work/test2.JPG

NB: Mais catégorie sont dans une table et mes sous catégorie dans une autre table dans la base de données.

Voici mon debut de code (je suis novice en php et je ne vois pas comment faire apparaitre dans la deuxieme liste les sous catégorie apres une selection de catégorie dans la premiere liste)

<html>
<head>
<title>Démonstration de TextArea</title>
<script language="JavaScript">
function verif()
{

with (document.liste)
{
souscategorie=(categorie.options[categorie.selectedIndex].value);

}

}
</script>
</head>
<body>
<?
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("amazone"); // Sélection de la base coursphp

$reponse = mysql_query("SELECT * FROM T_programme LIMIT 0,6"); // Requête SQL
$reponse2 = mysql_query("SELECT * FROM T_Categorie LIMIT 0,5"); // Requête SQL
$reponse3 = mysql_query("SELECT * FROM T_SousCategorie LIMIT 0,6"); // Requête SQL

?>
<form name="liste" onchange="return verif();">
<select name="categorie" size="1">
<option selected>default</option>
<?
while($data2 = @mysql_fetch_array($reponse2) )
{
?>
<option value="<?= $data2['NomCategorie'];?>"> <?echo $data2['NomCategorie'];?>
<?

}
?>

</select> Categorie



<select name="souscategorie" size="1" value="">

<?
while($data3 = @mysql_fetch_array($reponse3) )
{
if($_POST['souscategorie']== $data3['NomSousCategorie'])
{
?>
<option value="<?= $data3['NomSousCategorie'];?>"> <?echo $data3['NomSousCategorie'];?>
<? }

}
?>

</select> Sous-Categorie
</form>
</body>
</html>
raka
le 01/03/2005 à 09:29
raka
Voila j'ai reussi a lier mes deux menus...le probleme est que la deuxieme liste est en javascript et donc je n'arrive pas a aller rechercher mes donnée dans une base de données. Je suis obligé d'écrire dans le code.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="style2.css" />
</head>
<body>

<h1>To compare our products</h1>
<div class = "element_corps_de_page">

<form method="post" action="page1test3.php" name="doublecombo">


<!-- ============================ Connection a la base de donnée pour créer les checkbox ============================-->

<?
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("amazone"); // Sélection de la base coursphp

$reponse = mysql_query("SELECT * FROM T_programme LIMIT 0,6"); // Requête SQL
$reponse2 = mysql_query("SELECT * FROM T_Categorie LIMIT 0,10"); // Requête SQL
$reponse3 = mysql_query("SELECT * FROM T_programme LIMIT 0,6"); // Requête SQL
$reponse4 = mysql_query("SELECT * FROM T_SousCategorie LIMIT 0,6"); // Requête SQL
$reponse5 = mysql_query("SELECT * FROM T_Paragraphe"); // Requête SQL

?>

<input type="hidden" name="envoi" value="yes">

<?
$count = 1;
?>

<table border="1" cellpadding="5" cellspacing="5" id="tablerecherche">

<tr>

<td rowspan="2">
<?
while($donnee1 = @mysql_fetch_array($reponse) )
{

?> <input type="checkbox" name="options[]" value="<?=$count;?>"/><?echo $donnee1['NomProgramme'];?> <?echo $donnee1['NomVersion'];?><br>

<?
$count++;
}
?>



</td>

<!-- ==========================================================================================================-->


<!-- ============================== Connection a la base de donnée pour créer les Listes =============================-->
<td>

<?
$count2=1;
?>

<b>Category</b><br>
<select name="categorie" size="1"onchange="redirect(this.options.selectedIndex)">
<option value="">Select a category</option>
<? while($donnee2 = @mysql_fetch_array($reponse2) )
{
?>
<option value="<?= $donnee2['NomCategorie'];?>"> <?echo $donnee2['NomCategorie'];?></option>
<?
$count2++;
$categorie= @$_POST['categorie'];
}
?>

</select>

</td>

</tr>

<tr>

<td>

<b>Subcategory</b><br>
<select name="souscategorie" size="1" >
<option value="" >Select a sub category</option>

</select>

</td>

</tr>

<script>
<!--
//Ce script a été mis au point par Michael Mailer
//URL: http://www.webaid.de/js -- eMail: mm@webaid.de
//SVP, ne pas supprimer ce commentaire !
var groups=document.doublecombo.categorie.options.length
var contenu=document.doublecombo.categorie.options.text
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()
[b]ICI>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [/b]
group[0][0]=new Option("Selectionnez une categorie","Selectionnez une categorie")
group[1][0]=new Option("- none -","0")
group[2][0]=new Option("- none -","0")

//Categorie Locating, Finding and Selecting Rubrics
group[3][0]=new Option("Finding a known rubric","1")
group[3][1]=new Option("Finding a rubric of unknown wording","2")
group[3][2]=new Option("Cross-references between related rubrics","3")
group[3][3]=new Option("Searching for \"concepts\" ","4")

group[4][0]=new Option("- none -","0")
group[5][0]=new Option("- none -","0")

//Categorie Organizing the analysis
group[6][0]=new Option("Editing / Qualifying rubrics","5")
group[6][1]=new Option("Combining rubrics","6")

//Categorie Display of the analysis
group[7][0]=new Option("Basic graphic display","7")
group[7][1]=new Option("Weighting of analysis","8")
group[7][2]=new Option("Special analyses","9")
group[7][3]=new Option("Families analysis","10")

group[8][0]=new Option("- none -","0")
group[9][0]=new Option("- none -","0")
group[10][0]=new Option("- none -", "0")[b]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>[/b]

var temp=document.doublecombo.souscategorie

function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)

}
temp.options[0].selected=true
}





//-->
</script>

</table>
<br>
<input type="submit" value="Compare" />
<br>


<!-- ==========================================================================================================-->



<!-- ============= Connection a la base de donnée pour afficher les données selectionnées dans les checkbox =============-->

<?

$envoi = @$_POST['envoi']; //aiguilleur
$options = @$_POST['options']; //Contenu des cases à cocher
$i = 0;
?>
<br>
<input type="hidden" name="options[]" value="init">


<?

if ($envoi == 'yes')
{
?>
<table border="1" width="100%" id="tablecompare" cellpadding="7">

<tr>

<td width="25%" align="right">

<strong>Category:</strong>

</td>

<td colspan="6">

<?$sql = "SELECT IDCategorie FROM T_Categorie WHERE NomCategorie='$categorie';";
$reponse6 = mysql_query($sql);
while($donnees6 = mysql_fetch_array($reponse6))
{
echo $donnees6['IDCategorie'];
echo ' >> '.$categorie;
$donnees6_ID=$donnees6['IDCategorie'];
}?>

</td>

</tr>

<tr>

<td width="25%" align="right">

<strong>Subcategory:</strong>

</td>

<td colspan="6">
<?
while($donnees4= mysql_fetch_array($reponse4))
{
if($_POST['souscategorie'] == $donnees4['IDSousCategorie'])
{
echo $donnees4['NomSousCategorie'];

}
}

?>


<br>
</td>
</tr>




<?
if($_POST['categorie']=="")
{
?><script>alert('Select a category please')</script><?
}
else
{ $j=0;
while($donnees3 = @mysql_fetch_array($reponse3) )
{

if($options[$i] == $donnees3['IDProgramme'] AND $options[$i] != null)
{
$donneestemp= $donnees3['IDProgramme'];

while($donnees5 = @mysql_fetch_array($reponse5))
{
if($options[$j] == $donnees5['IDProgramme'] AND $donnees5['IDCategorie'] == $donnees6_ID AND $_POST['souscategorie'] == $donnees5['IDSousCategorie'])
{
?>
<tr>
<td>
<? echo $donnees3['NomProgramme'];
echo $donnees3['NomVersion'];
?> </td>

<td>
<? echo $donnees5['Texte'];
$j++;
?> </td>
</tr>
<? break;
}
}
$i++;
}

}
}
?>

</table>

<!-- ==========================================================================================================-->

<?

}

mysql_close(); // Déconnexion de MySQL

?>
</form>

</div>

</body>
</html>
Keny
le 01/03/2005 à 21:31
Keny
Salut. T'as gagné champion, je t'invite à dîner. smiley ++
Little Keny
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours