Il y a actuellement 87 visiteurs
Dimanche 01 Août 2021
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

menu en php/sql

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

menu en php/sql

Message le 22 Oct 2010 20:24

Bonsoir,
je suis en train de faire un menu en php/sql, mais j'ai quelques problèmes.

Voici le code de la page "presentation.php" :

Code: Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="index, follow" />
<meta name="keywords" content=" "/>
<meta name="description" content=" "/>
<title></title>
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" href="css/style_menu.css" type="text/css" />
    <script type="text/javascript" src="js/functions.js"></script>
<style type="text/css">
<!--
body {
   margin-top: 0px;
}
-->
</style></head>
<body bgcolor="#333333">
<table width="1050" border="0" align="center" cellpadding="0" cellspacing="0" style="background: #000; height: 421px; min-height: 421px;">
<tr>
<td colspan="3" style="height: 50px; min-height: 50px; max-height: 50px;">&nbsp;</td>
</tr>
<tr>
<td width="183" valign="top" style="width: 145px;"><?php include"menu/menu.php" ?></td>
<td width="850" style="width: 682px; background: #fff;">contenu</td>
<td width="17" style="background: #000;">&nbsp;</td>
</tr>
</table>

</body>
</html>


Voici le code du CSS :

Code: Tout sélectionner
#menu {
width: 150px;
background: #000;
margin: 0;
}
.menu_niv2 { display: none; }
.menu_niv1 a {
display: block;
background: #333;
color: #fff;
text-decoration: none;
text-align: center;
}
.menu_niv1 a:hover {
display: block;
background: #666;
color: #fff;
text-decoration: underline;
text-align: center;
}
.menu_niv2 a {
color: #333;
background: #ccc;
text-decoration: none;
text-align: center;
display: block;
}
.menu_niv2 a:hover {
color: #333;
background: #aaa;
text-decoration: underline;
text-align: center;
display: block;
}


Voici le code du js :

Code: Tout sélectionner
function afficheMenu(menu) {
// generation du nom du sous menu que l'on veut gerer (afficher / cacher)
var sousMenu='sous' + menu;
// on recupere son etat
var etatSousMenu=document.getElementById(sousMenu).style.display;
// on cree un array de tous les menus de niveau 1, donc ceux qui ont la classe 'menu_niv1'
var listeNiv1=document.getElementsByClassName('menu_niv1');
// on boucle sur ces elements
for (var i=0; i<listeNiv1.length; i++) {
// on recupere l'id du menu courant
var idCourant=listeNiv1[i].id;
// si l'id courant est le meme que le menu que l'on a clique alors on traite le sous menu
// sinon on le cache et on passe au suivant
if (idCourant==menu) {
if (etatSousMenu=='block') {
document.getElementById(sousMenu).style.display='none';
} else {
document.getElementById(sousMenu).style.display='block';
}
} else {
// attention, si on cache, on doit cacher le sous menu du menu courant, il faut donc creer une nouvelle variable pour cacher celui-ci
var sousMenuTemp='sous' + idCourant;
document.getElementById(sousMenuTemp).style.display='none';
}
}
}


Et, enfin le code du menu :

Code: Tout sélectionner
<div id="menu">
<?php
require("identification/connexion_sql.php");
// on attaque le php ici
// dans un premier temps on recupere les menus de niveau 1 donc ceux qui ont l'id_parent egal a 0
$req1 = "SELECT id_menu, lib_menu FROM menus WHERE id_parent='0' ORDER BY ordre_menu" or die ("impossible d'effectuer la requête");
$rep1 = mysql_query($req1);
while($row1 = mysql_fetch_array($rep1)) {
// on affiche le menu de niveau 1
echo "<div class=\"menu_niv1\" id=\"menu".$row1['id_menu']."\" onclick=\"afficheMenu(this.id)\"><a href=\"#\">".$row1['lib_menu']."</a></div>\n";
// ensuite on fait une seconde requete pour chercher les sous menus de ce niveau, s'il y en a on les affiche, sinon on ne fait rien
$req2="SELECT id_menu, lib_menu FROM menus WHERE id_parent='".$row1['id_menu']."' ORDER BY ordre_menu"  or die ("impossible d'effectuer la requête");
$rep2=mysql_query($req2);
$nb2=mysql_num_rows($rep2);
if (isset($nb2) && $nb2>0) {
echo "<div id=\"sousmenu".$row1['id_menu']."\" class=\"menu_niv2\">\n";
while ($row2=mysql_fetch_array($rep2)) {
echo "<a href=\"#\">".htmlentities($row2['lib_menu'])."</a>\n";
}
echo "</div>\n";
}
}
?>
</div>


le premier problème est le décalage du menu par rapport à la zone blanche.
Normalement, le menu doit être à la même hauteur que la zone blanche, mais ce n'est pas le cas :(
Je ne comprends pas pourquoi il y a ce problème.

Autre problème, le menu ne fonctionne pas du tout sous IE.

Pensez-vous pouvoir m'aider ?

Merci beaucoup et bonne soirée
kaaaaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaa
quaresma
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 21
Inscription: 23 Juil 2003 14:15
Localisation: annecy
 



Sujets similaires

Message réglage du menu démarrer
Bonjour sur un portable HP sous Windows 10 lorsque je clique sur le bouton démarrer, je souhaiterai avoir les applications en plein écran directement au lieu du menu démarrer. Est ce possible svp car je ne trouve pas le réglage approprié ? Merci.
Réponses: 5

Message Écran bloqué sur le menu
Bonjour.Je suis entré dans le menu de mon écran, qui, je précise, est un écran télé, pour affiner les réglages. Opération que j'avais déjà réalisé par le passé sans problème . Mais depuis hier, impossible de revenir sur mon bureau, c'est à dire l'écran de bureau de mon PC. J'ai débranché, rebranché ...
Réponses: 5

Message [Réglé]Enlever un élement du menu contextuel de la corbeille
Bonjour à tous,Je viens de passer une bonne demi-heure à rechercher dans le registre la clé gérant le menu contextuel de la corbeille suite à une erreur créée par un logiciel: un menu fantôme contenant des caractères "hors clavier" empêchant une recherche facile dans la base de registre ( ...
Réponses: 11

Message Menu configuration win10
Salut à tous, J'essaie de désactiver la roue de ma tablette Wacom et la solution se trouverait dans ce lien mais mon menu est rudimentaire comparé au sien:https://www.youtube.com/watch?v=IlNtRdsOp6IMon menu, très rudimentaire, sans les options que propose celui du youtuber:Merci
Réponses: 12

Message [Réglé] Menu de firefox en anglais
Bonjour.En ce moment j'ai pas mal de petit problèmes d'ordi faut croire, puisque je suis souvent là lol.Rien de grave cette fois-ci, mais j'ai installé la version française de firefox, et je ne sais pas comment je me suis débrouillé (puisque c'est sans doute moi qui ai fait quelque chose), mais main ...
Réponses: 2

Message bug du menu démarrer
Bonjour,il m'est impossible d'ouvrir l'onglet "mes musiques" via le menu démarrer. Quelqu’un connaît-il la cause de ce genre de bug et comment y remédier?J'ai un windows 7.J'ai voulu insérer une image pour montrer l'emplacement mais je n'ai pas réussi avec les balises img.
Réponses: 6

Message Menu de mon site
Bonjour Le menu de mon site ne répond pas avec les mobiles uniquement la page d’accueil mon site: http://www.traiteurgers.netMerci
Réponses: 1


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.