Partage
  • Partager sur Facebook
  • Partager sur Twitter

Menu Dynamique

Sujet résolu
    26 octobre 2021 à 11:45:05

    Bonjour,

    J'ai un fichier menu.php avec un include sur les autres fichiers. Comme je ne connais pas trop bien le php, c'est pour cela que je demande votre aide.

    Lorsque je vais sur une page j'aimerais que le lien dans le menu n'apparaisse pas. Par exemple je suis sur la page index il faudrait que Accueil disparaisse du menu. Est-ce possible de le faire ?

    Voici mon fichier menu.php

            <nav>
                <a href="index.html"><img src="src/img/logo.png" alt="Logo"></a>
                <div class="nav-links" id="navLinks">
                    <i class="fas fa-times" onclick="hideMenu()"></i>
                    <ul>
                        <li><a href="index.html">Accueil</a></li>
                        <li><a href="#services">Services</a></li>
                        <li><a href="fds.html">Fiches de Sécurité</a></li>
                        <li><a href="contact.php#contacts">Contact</a></li>
                    </ul>
                </div>
                <i class="fas fa-bars" onclick="showMenu()"></i>
            </nav>

    Merci à vous

    -
    Edité par Meegolo 26 octobre 2021 à 11:45:49

    • Partager sur Facebook
    • Partager sur Twitter
      26 octobre 2021 à 12:38:07

      Bonjour,

      Une solution simple pour ton problème consiste à utiliser une variable dans le code de ta page qui contiendrait son nom. Par exemple :

      $currentPage = "Accueil" ; // Placé dans le header, de préférence

      Quand tu génères la liste de ton menu (au moyen d'une boucle), tu compares les noms de la liste (qui seront dans un tableau) avec celui de la page courante et si le résultat est positif, tu ne l'inclues pas.

      • Partager sur Facebook
      • Partager sur Twitter
        26 octobre 2021 à 14:21:15

        Merci pour ta réponse. Mais vu que je suis un peut une quiche en php ce que j'ai uniquement compris c'est que je mets au-dessus du doctype 
        $currentPage = "Accueil" ; // Pour la page accueil

        Pour la page d'accueil, et pour la page contact.php

        $currentPage = "Contact" ; // Pour la page contact.php

        etc...

        Par contre vous me dite de générer la liste de mon menu au moyen d'une boucle, de comparer les noms de la liste avec la page courante etc... là je ne vois pas comment faire.

        Merci pour votre aide.

        • Partager sur Facebook
        • Partager sur Twitter
          26 octobre 2021 à 15:21:06

          Si tu as du temps libre, voici le cours dédié aux bases de PHP. Pour ce que tu cherches à faire, ce bout de code fera l'affaire :

          <ul>
          	<?php	
          	$pages = array("Accueil" => "index.html", "Services" => "#services", "Fiches de Sécurité" => "fds.html", "Contact" => "contact.php#contacts");
          	
          	foreach($pages as $pageName => $pageLink) {
          		if(strcmp($currentPage,$pageName) !== 0) // Si le nom est différent de la page courante, on affiche l'élément
          			echo "<li><a href='$pageLink'>$pageName</a></li>";
          	} ?>
          </ul>

          Chaque entrée du tableau est une association entre le nom de la page et le lien que tu veux lui attribuer.

          • Partager sur Facebook
          • Partager sur Twitter

          Menu Dynamique

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown