[html/php] [liste deroulante a plusieurs niveau]
antic80
-
Jo -
Jo -
bonjour a ceux qui liront ce message
je cherche a faire une liste déroulante a plusieurs niveau c a dire
niveau1
...1-1
...1-2
niveau2
...2-1
...2-2
etc..
merci pour votre aide
je cherche a faire une liste déroulante a plusieurs niveau c a dire
niveau1
...1-1
...1-2
niveau2
...2-1
...2-2
etc..
merci pour votre aide
20 réponses
-
Bonjour antic80 (si tu passes par là de nouveau un jour...),
je ne sais pas si tu veux pouvoir cliquer sur "Article" dans ta liste, mais si c'est juste un titre de catégorie je te conseille ça :
<select> <optgroup label='Article 1'> <option name='art1p1'> Page 1 </option> <option name='art1p2'> Page 2 </option> </optiongroup> <optgroup label='Article 2'> <option name='art2p1'> Page 1 </option> <option name='art2p2'> Page 2 </option> </optiongroup> [...] </select>
Après tu formes ta boucle en php. -
-
ca c pour les menus mais moi je veux pour les listes déroulantes de sélection
merci quand meme -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Faire des menus avec quoi ?
html/javascript/css ? MFC ? Qt ? Gtk ? Delphi ? -
je ne cherche pas a faire des menus mais une liste déroulante en php
j'ai deja fais ma liste que je rempli avec une requete
dans la liste j'affiche tous les articles que j'ai mais j'aimerai afficher dans la liste le nom de l'article et sa ou ses pages correspondantes de la facon suivante
article1
...page 1
...page 2
article2
...page 1
article3
...page 1
etc...
donc j'aimerai savoir comment on fais une liste déroulante avec plusieurs nivo
merci -
le probleme c'est que j'arrive a afficher la liste des articles mais je n'arrive pas a afficher les pages en dessous
-
voila mon code
en fait je veux faire ca au niveau de la liste2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<title>Document sans titre</title>
</head>
<body>
<table border="1" bgcolor="" width="100%">
<tr>
<td width="">
<FORM ACTION="encyc.php" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded">
<SELECT NAME="Categorie" >
<OPTION value="1">Dossiers Spéciaux
<OPTION value="2">Courrier des lecteurs
<OPTION value="3">Fiches Techniques
</SELECT>
<INPUT TYPE="SUBMIT" VALUE="Envoyez">
</DIV>
</form>
<?php
// connexion à la base
$Host = "localhost";
$User = "root";
$Password = "antic";
$Database = "micro";
$idConnect = mysql_connect( $Host, $User, $Password)
or die( "Connexion impossible.");
$db = mysql_select_db( $Database, $idConnect)
or die( "Accès base impossible.");
if(isset($_POST['Categorie'])) $Categorie=$_POST['Categorie'];
else $Categorie="";
// Requête SQL
$rqSql = "SELECT Id,Titre,Page,Logiciel FROM article where CodeCat=$Categorie";
// Exécution de la requête
$result = mysql_query( $rqSql, $idConnect)
or die( "Pour obtenir la liste des articles veuillez sélectionner une catégorie");
$liste2="<select name='Article' >";
$liste2 .="<option value=0> choisissez un article</option>";
while ( $row = mysql_fetch_array( $result)) {
// $row est un tableau associatif
// les éléments sont «indicés» par les noms
// des colonnes. Je préfère cette technique à celle
// des indices numériques..on ajoute une colonne..
$Id = $row["Id"];
$Titre = $row["Titre"];
$Page = $row["Page"];
$Logiciel = $row["Logiciel"];
$liste2 .="<option value='$Id'>$Titre </option>";
}
$liste2 .="</select>";
print '<form method="POST" action="encyc.php">';
print $liste2;
print '<INPUT TYPE="hidden" NAME="Categorie" VALUE="'.$Categorie.'">';
print '<INPUT TYPE="SUBMIT" NAME="envoie" VALUE="Affichez">';
print '</form>';
mysql_close( $idConnect);
?>
</td>
</tr>
</table>
<table>
<tr>
<td>
<?php
if(isset($_POST['envoie']) && $_POST['Article']!="" )
{
echo "<IMG SRC=\"".$Page.".jpg\">";
}
else echo "pas d'image choisie...";
?>
</td>
</tr>
</table>
</body>
</html>-
Euh, je ne comprends pas ce que sont tes "pages". Comment cela se fait-il que tu appel la variable Page dans ta balise d'image ?
Et juste pour info, les doubles quotes n'ont pas besoin d'être fermées pour inclure une variable. C'est avec les simples que cela est obligatoire. Tu peux donc écrire ta ligne d'image comme ça :echo '<IMG SRC="'$Page'.jpg">';
-
-
je vais d'expliquer ma page
ma page s'appelle encyc.php
quand j'ouvre la page une liste apparait avec un bouton submit
je selectionne une valeur je clic sur le bouton et ma page encyc.php ce recharge et m'affiche une 2 ème liste avec un autre bouton
dans cette liste s'affiche les articles
je sélectionne un article et quand je clic sur le bouton la page de l'article s'affiche en bas
ds ma base de données j'ai inserer les données de la maniere suivante
article 1 page1
article 1 page2
article 2 page1
etc...
ce qui fais que quand j'affiche ma liste d'articles j'obtient
article1
article1
article2
article2
alors que moi je voudrais
article1
...page 1
...page 2
article2
...page 1
etc....
voila dis moi s'y tu veux savoir d'autres choses -
-
Et si tu met dans le nom de tes pages, 1a, 1b, etc, tu n'aura plus besoin de ton arborescence non ? et cela simplifiera grandement tout ça...
-
-
je reviens sur le probleme d'affichage des images
en faite quelque soit l'article que je selectionne il me renvoie la derniere page de la categorie
si je selectionne dossiers spéciaux pour n'importe quels articles il m'affiche la derniere page
pourquoi-
Je pense que c'est à cause de cette partie du code :
<?php
if(isset($_POST['envoie']) && $_POST['Article']!="" )
{
echo "<IMG SRC=\"".$Page.".jpg\">";
}
else echo "pas d'image choisie...";
?>
En effet, nulle part tu indique à quel enregistrement $Page fait allusion, il doit donc surement prendre en compte le dernier.
@+
-
-
-
Il faut rajouter un truc comme ca alors :
if(isset($_POST['Categorie'])) $Categorie=$_POST['Categorie']; else $Categorie=""; if(isset($_POST['Article'])) $tmp = $_POST['Article']; else $tmp = ""; $image = ""; ... $liste2 .="<option value=0> choisissez un article</option>"; while ( $row = mysql_fetch_array( $result)) { // $row est un tableau associatif // les éléments sont «indicés» par les noms // des colonnes. Je préfère cette technique à celle // des indices numériques..on ajoute une colonne.. $Id = $row["Id"]; $Titre = $row["Titre"]; $Page = $row["Page"]; if($Id = $tmp) $image = $Page; $Logiciel = $row["Logiciel"]; $liste2 .="<option value='$Id'>$Titre </option>"; } ... if( $image != "" ) { echo "<IMG SRC=\"".$image.".jpg\">"; } else echo "pas d'image choisie..."; ?>
-
-
-
je le mais ou ce morceau de code et surtout après ca je met koi
$rq= "SELECT Page FROM article where id=$ID";
$result = mysql_query( $rq, $idConnect)
merci de me dépanner c vachement important -
j'ai repris ton code et je les replacer ou il fallait mais la il ne m'affiche plus aucune image
-
Alors dans ce cas fait voir ca et dit moi ce que cela met :
if( $image != "" ) { echo $image."<BR>"; } else .... -
rien
au cas ou je te renvoie le code entier de la page
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<title>Document sans titre</title>
</head>
<body>
<table border="1" bgcolor="" width="100%">
<tr>
<td class="tableaugauche" >
<font face="@Arial Unicode MS" size="6"><b><div align="center">Mon encyclopédie Informatique</div></b></font>
</td>
</tr>
</table>
<table border="1" bgcolor="" width="100%">
<tr>
<td class="tableaugauche" width="">
<FORM ACTION="encyc.php" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded">
<SELECT NAME="Categorie" >
<OPTION value="1">Dossiers Spéciaux
<OPTION value="2">Courrier des lecteurs
<OPTION value="3">Fiches Techniques
</SELECT>
<INPUT TYPE="SUBMIT" VALUE="Envoyez">
</DIV>
</form>
<?php
// connexion à la base
$Host = "localhost";
$User = "root";
$Password = "antic";
$Database = "micro";
$idConnect = mysql_connect( $Host, $User, $Password)
or die( "Connexion impossible.");
$db = mysql_select_db( $Database, $idConnect)
or die( "Accès base impossible.");
if(isset($_POST['Categorie'])) $Categorie=$_POST['Categorie'];
else $Categorie="";
if(isset($_POST['Article']))
$tmp = $_POST['Article'];
else
$tmp = "";
$image = "";
// Requête SQL
$rqSql = "SELECT Id,Titre,Page,Logiciel FROM article where CodeCat=$Categorie";
// Exécution de la requête
$result = mysql_query( $rqSql, $idConnect)
or die( "Pour obtenir la liste des articles veuillez sélectionner une catégorie");
$liste2="<select name='Article' >";
$liste2 .="<option value=0> choisissez un article</option>";
while ( $row = mysql_fetch_array( $result)) {
// $row est un tableau associatif
// les éléments sont «indicés» par les noms
// des colonnes. Je préfère cette technique à celle
// des indices numériques..on ajoute une colonne..
$Id = $row["Id"];
$Titre = $row["Titre"];
$Page = $row["Page"];
if($Id = $tmp)
$image = $Page;
$Logiciel = $row["Logiciel"];
$liste2 .="<option value='$Id'>$Titre </option>";
}
$liste2 .="</select>";
print '<form method="POST" action="encyc.php">';
print $liste2;
print '<INPUT TYPE="hidden" NAME="Categorie" VALUE="'.$Categorie.'">';
print '<INPUT TYPE="SUBMIT" NAME="envoie" VALUE="Affichez">';
print '</form>';
mysql_close( $idConnect);
?>
</td>
</tr>
</table>
<table border="1" width="100%">
<tr>
<td class="tableaugauche">
<?php
if( $image != "" )
{
echo $image."<BR>";
}
else
echo "pas d'image choisie...";
?>
</td>
</tr>
</table>
</body>
</html> -
nikel chrome
j'ai du par la suite remettre ce bout de code
if( $image != "" )
{
echo "<IMG SRC=\"".$image.".jpg\">";
}
else echo "pas d'image choisie...";
?>
a la fin et ca marche
peut tu m'expliquer la différence entre if($Id = $tmp) et if($Id == $tmp) -
et j'aurai une derniere question
comment je pourrais faire pour a l'aide de 2 boutons acceder soit a l'image précédente ou l'image suivant-
-
Si oui, alors tu as plein d'astuce et de facon de le faire. Le meiux est de faire un truc en javascript pour éviter de recharger ta page à chaque fois.
Pour cela, il te faudra une fonction JS qui loade les image en mémoire quand tu selectionne ta valeur dans la première liste. Puis une fonction qui change l'iamge du tableau selon le bouton sur lequel tu appuie. (comme un rollover si tu vois ce que c'est).
-