Bloquer le menu lors du changement de page

Bloquer le menu lors du changement de page - HTML/CSS - Programmation

Marsh Posté le 24-10-2010 à 23:11:53    

Bonjour à toutes et tous,
 
je suis en train de faire un site et je voudrais faire en sorte que mon menu de gauche reste bloqué sur la partie du menu sur laquelle j'ai cliqué lorsque je change de page.
Par exemple, lorsque je clique sur le sous-menu "théâtre", j'aimerai que le menu relatif à théâtre reste ouvert (tu comprends ??) lors du changement de page.
 
Voici mon js :

Code :
  1. function afficheMenu(obj){
  2. var idMenu     = obj.id;
  3. var idSousMenu = 'sous' + idMenu;
  4. var sousMenu   = document.getElementById(idSousMenu);
  5. /*****************************************************/
  6. /** on cache tous les sous-menus pour n'afficher    **/
  7. /** que celui dont le menu correspondant est cliqué **/
  8. /** où 4 correspond au nombre de sous-menus         **/
  9. /*****************************************************/
  10. for(var i = 1; i <= 5; i++){
  11.  if(document.getElementById('sousmenu' + i) && document.getElementById('sousmenu' + i) != sousMenu){
  12.   document.getElementById('sousmenu' + i).style.display = "none";
  13.  }
  14. }
  15. if(sousMenu){
  16.  //alert(sousMenu.style.display);
  17.  if(sousMenu.style.display == "block" ){
  18.   sousMenu.style.display = "none";
  19.  }
  20.  else{
  21.   sousMenu.style.display = "block";
  22.  }
  23. }
  24. }


Ensuite le code pour le menu :
 

Code :
  1. <div id="menu">
  2. <?php
  3. require("identification/connexion_sql.php" );
  4. // on attaque le php ici
  5. // dans un premier temps on recupere les menus de niveau 1 donc ceux qui ont l'id_parent egal a 0
  6. $req1 = "SELECT id_menu, lib_menu FROM menus WHERE id_parent='0' ORDER BY ordre_menu" or die ("impossible d'effectuer la requête" );
  7. $rep1 = mysql_query($req1);
  8. while($row1 = mysql_fetch_array($rep1)) {
  9. // on affiche le menu de niveau 1
  10. echo "<div class=\"menu\" id=\"menu".$row1['id_menu']."\" onclick=\"afficheMenu(this)\"><a href=\"#\">".$row1['lib_menu']."</a></div><br>";
  11. // 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
  12. $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" );
  13. $rep2=mysql_query($req2);
  14. $nb2=mysql_num_rows($rep2);
  15. if (isset($nb2) && $nb2>0) {
  16. echo "<div id=\"sousmenu".$row1['id_menu']."\" style=\"display:none\"><br>";
  17. while ($row2=mysql_fetch_array($rep2)) {
  18. $num = $row2['id_menu'];
  19. $lib = htmlentities($row2['lib_menu']);
  20. print '<div class="sousmenu"><a href="contenu.php?num='.$num.'&lib='.$lib.'">'.$lib.'</a></div><br>';
  21. }
  22. echo "</div>";
  23. }
  24. }
  25. ?>
  26. </div>


Puis le .ccs relatif au menu:
 

Code :
  1. #menu{
  2. width:150px;
  3. }
  4. .menu, .sousmenu{
  5. text-align: right;
  6. }
  7. .menu{
  8. height:18px;
  9. width:150px;
  10. color:#fff;
  11. padding-bottom: 10px;
  12. top:0;
  13. font-family:arial,sans-serif;
  14. font-size:12px;
  15. text-decoration:none;
  16. }
  17. .sousmenu{
  18. height:14px;
  19. width:170px;
  20. padding: 0px;
  21. color:#ffffff;
  22. text-align: right;
  23. }
  24. .menu a{
  25. display:block;
  26. width:100%;
  27. height:100%;
  28. color:#fff;
  29. font-family:arial,sans-serif;
  30. font-size:12px;
  31. text-decoration:none;
  32. margin-top: 0;
  33. }
  34. .sousmenu a{
  35. display:block;
  36. width:100%;
  37. height:100%;
  38. color:#666666;
  39. font-family:Garamond;
  40. font-size:18px;
  41. text-decoration:none;
  42. }
  43. .sousmenu a:hover, .sousmenu a:active, .sousmenu a:focus{
  44. color:#ffffff;
  45. }


Le code de la page php sur laquelle je fais les tests:
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  3. <head>
  4.  <title>Cr&eacute;ation d'un design &eacute;tape par &eacute;tape - Etape n&deg;1 : Le code xhtml</title>
  5.  <meta http-equiv="Content-Style-Type" content="text/css" />
  6.  <meta http-equiv="Content-Language" content="fr" />
  7.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8.   <link rel="stylesheet" href="css/copie_style_menu.css" type="text/css" />
  9.       <link rel="stylesheet" href="css/contenu.css" type="text/css" />
  10.   <script type="text/javascript" src="js/copie_functions.js"></script>
  11.       <script type="text/javascript" src="js/functions_contenu.js"></script>
  12.         <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
  13. </head>
  14. <body>
  15. <div id="conteneur">
  16.     <div id="entete"></div>
  17.     <div id="conteneur2">
  18.     <div id="cellulegauche"><?php include("menu/copie_menu.php" ) ?></div>
  19.  <div id="contenucel1">
  20.  <div class="titre_lien"><?php
  21. $titre = $_GET['lib'];
  22. print''.$titre.''; ?></div>
  23. <?php
  24. include ("requetes/requete_lien.php" );
  25. ?>
  26.  </div>
  27.         <div id="contenucel2"></div>
  28.         <div id="contenucel3" class="placeholder"></div>
  29.      <script>
  30.     $("a.lien" ).click(function() {
  31.       loadContent( $(this).attr('href') );
  32.       return false;
  33.     });
  34.    
  35.     function loadContent(page){
  36.         $.ajax({
  37.           url: page,
  38.           success: function(data) {
  39.             $('.placeholder').html(data);
  40.           }
  41.         });
  42.     }
  43.     </script>
  44.         </div>
  45.  </div>
  46. </body>
  47. </html>


[color=#EF0F37]A savoir que le code

Code :
  1. <script>
  2.     $("a.lien" ).click(function() {
  3.       loadContent( $(this).attr('href') );
  4.       return false;
  5.     });
  6.    
  7.     function loadContent(page){
  8.         $.ajax({
  9.           url: page,
  10.           success: function(data) {
  11.             $('.placeholder').html(data);
  12.           }
  13.         });
  14.     }
  15.     </script>


[/color]
 
n'a rien à voir avec le menu de gauche. C'est unet fonction qui me permet d'afficher dans la zone blanche de droite un texte lorsque je clique sur un lien appartenant à la zone blanche du milieu.  
 
Et enfin, le lien vers le site en test : Site de test
 
J'espère que ces données seront suffisantes, sinon n'hésites-pas à me dire ce qu'il manque.
Merci beaucoup pou ton aide et bonne soirée.


Message édité par quaresma le 31-10-2010 à 23:03:09
Reply

Marsh Posté le 24-10-2010 à 23:11:53   

Reply

Marsh Posté le 31-10-2010 à 23:03:30    

please help

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed