ruoyu Posté 27 Mars 2010 Posté 27 Mars 2010 Bonjour, J'ai un probleme avec l'un de mes scripts. Je veux faire un menu horizontal dynamique déroulant mais je n'y arrive pas. Je sais faire un menu horizontal déroulant mais je préfèrerais en faire un dynamique. ALors mon souci est que mon sous-menu ne s'affiche pas au bon endroid, il s'affiche au 1er menu et non pas au bon menu : Alors qu'il devrait etre comme ca : C'est normal que ce soit en liste déroulante car je n'ai pas encore intégré le CSS. Alros mon code source : <div id="menu"><?php include("info.php");mysql_connect($adresse, $nom, $motdepasse);mysql_select_db($database);$categorie="SELECT * FROM categorie WHERE id_parent ='0'";$resultat = mysql_query($categorie);$id = $_GET['id'];$souscategorie="SELECT * FROM categorie WHERE id_parent =$id ORDER BY id_parent";$resultat1 = mysql_query($souscategorie);while ($cat = mysql_fetch_array($resultat)){$code = stripslashes($cat['cat_id']);$cat2 = stripslashes($cat['cat_name']);echo '<ul>';echo '<li><a href="./index.php?id='.$code.'">'.$cat2.'</a></li>';while ($cat1 = mysql_fetch_array($resultat1, MYSQL_ASSOC)) { $code23 = stripslashes($cat1['cat_id']) ; $cat23 = stripslashes($cat1['cat_name']); echo '<ul>'; echo '<li><a href="./index.php?id='.$code23.'">- '.$cat23.'</a></li>'; echo '</ul>'; }echo '</li>';echo '</ul>';}?></div> Quel est le probleme ? Merci d'avance PS : Comment faire pour mettre l'endroit où on poste le code source spécialement en php ?
SStephane Posté 27 Mars 2010 Posté 27 Mars 2010 Bonjour, Tu fermes 2 fois le tag </li>, celui après le </a> est certainement de trop, retire le donc De plus, tes sous catégories bouclent sur un liste intégralement et tu ne séléctionnes qu'un seul parent, ce qui n'est pas bon, essai ceci dans l'idée : <div id="menu"><?php include("info.php");mysql_connect($adresse, $nom, $motdepasse);mysql_select_db($database);$categorie="SELECT * FROM categorie WHERE id_parent ='0'";$resultat = mysql_query($categorie);$id = $_GET['id'];echo '<ul>';while ($cat = mysql_fetch_array($resultat)){$code = stripslashes($cat['cat_id']);$cat2 = stripslashes($cat['cat_name']);echo '<li><a href="./index.php?id='.$code.'">'.$cat2.'</a>';$souscategorie=sprintf("SELECT * FROM categorie WHERE id_parent=%s ORDER BY id_parent", mysql_real_escape_string($cat['cat_id']));$resultat1 = mysql_query($souscategorie);$cat1 = mysql_num_rows($resultat1);if($sub) print '<ul>';while ($cat1 = mysql_fetch_array($resultat1, MYSQL_ASSOC)){ $code23 = stripslashes($cat1['cat_id']) ; $cat23 = stripslashes($cat1['cat_name']); echo '<li><a href="./index.php?id='.$code23.'">- '.$cat23.'</a></li>'; }if($sub) print '</ul>';echo '</li>';}?>echo '</ul>';</div> je n'ai pas testé hein^^ PS, n'oublies pas d'échapper tes requêtes
ruoyu Posté 28 Mars 2010 Auteur Posté 28 Mars 2010 Bonjour, Merci de ta réponse. Ok je vais l'enlever mais il me semble que j'avais testé en l'enlevant mais ca n'avait rien changé. Ok je vais essayer ton code mais pas pour l'instant je ne suis pas chez moi. Je reposte un message ce soir pour te confirmer si ca a marché Ne t'inquiete pas je n'oublierais pas, c'est juste que je teste le script puis s'il marche je mets en place la sécurité
ruoyu Posté 29 Mars 2010 Auteur Posté 29 Mars 2010 J'ai une question : Quelle est la valeur de la variable $sub ? Car je vois que tu met cette variable dans une condition mais nul part avant t'affectes une valeur à $sub
Message populaire. SStephane Posté 29 Mars 2010 Message populaire. Posté 29 Mars 2010 Oui j'ai fait ça vite : $cat1 = mysql_num_rows($resultat1);=>$sub = mysql_num_rows($resultat1); Je te dis pas que tu peux pas faire mieux d'ailleurs, j'ai fait ça en speed à partir de ton code 1
Message populaire. ruoyu Posté 29 Mars 2010 Auteur Message populaire. Posté 29 Mars 2010 Ok merci beaucoup. Ca marche maintenant 1
ruoyu Posté 29 Mars 2010 Auteur Posté 29 Mars 2010 Alors j'ai un autre soucis : Mes sous-catégories ont la meme image que ma sous-catégorie, c'est une erreur dans le CSS mais je ne sais pas comment la résoudre. Regardez : Je voudrais que les sous-catégories soit blanches et séparées par des bordures. Voila mon CSS : #menu, #menu ul {padding: 0;margin: 0;list-style: none;float:left;width:100%;font-size:90%;text-align : center;background-color : yellow;}#menu a {display: block;background:url("images/norm_left.gif") no-repeat left top; padding:5px 20%; text-align : center; text-decoration : none;}#menu li ul { position: absolute; width: 10em; left: -999em;}#menu li:hover ul { left: auto;}#menu li {float: left;width: 10em;background: url("images/norm_right.gif") no-repeat right top;text-align : center;}
jahazzz Posté 30 Mars 2010 Posté 30 Mars 2010 Salut, C'est pas une erreur css, simplement lorsque écris les sélecteurs #menu li ou #menu a, tu définis des règles qui vont s'appliquer à tous les éléments <li> et <a> contenus dans #menu. Comme les règles s'appliquent en cascade et que la dernière énoncée prime, il te suffit donc à la suite d'écrire de nouvelles règles pour tes sous-catégories en les ciblant comme ça: #menu li ul li{} et #menu li ul li a{}
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant