8800 sujets

Développement web côté serveur, CMS

Salut,

il n'est pas question de remplacer la chaîne mais de vérifier s'il faut ou non rajouter
' class="active"'

Par exemple :
<?php
$page_en_cours = basename($_SERVER['SCRIPT_NAME']);
?>
<ul>
	<li><a <?php if($page_en_cours == 'a.php') echo 'class="active"'; ?> href="a.php">Lien 1</a></li> 
	<li><a <?php if($page_en_cours == 'b.php') echo 'class="active"'; ?> href="b.php">Lien 2</a></li> 
</ul>
Et si tu as beaucoup de liens tu peux les mettre dans un array et faire une boucle.
Bonjour, je suis tomber sur ce poste grâce a une recherche google.

J'ai fait d'autre recherche sur le net et sur ce site mai j'ai pas trouver de bonne réponse.

Voila sur mon site sur mes pages j'ai un "Include" qui appel mon menu:
<?php include('inc/menu_haut.php'); ?>


Et voila mon "Menu_Haut.php":
<li><a href="index.php"><span class="l"></span><span class="r"></span><span class="t">Acceuil</span></a></li>

<li><a href="#"><span class="l"></span><span class="r"></span><span class="t">Catégories</span></a>
                			
                            <ul>
                			<li><a href="tableau.php" title="Tableau">Tableau</a></li>
                            <li><a href="popart.php" title="Pop Art">Pop Art</a></li>
                            <li><a href="noir_et_blanc.php" title="Noir & Blanc">Noir & Blanc</a></li>
                            <li><a href="wallpaper.php" title="Fond décran">Fond d'écran</a></li>
                            <li><a href="montage.php" title="Montage">Montage</a></li>
                            <li><a href="makeover.php" title="Makeover">Makeover</a></li>
                            <li><a href="graffiti.php" title="Graffiti">Graffiti</a></li>
                			</ul></li>

<li><a href="ftp.php"><span class="l"></span><span class="r"></span><span class="t">FTP</span></a></li>
<li><a href="liens.php"><span class="l"></span><span class="r"></span><span class="t">Liens</span></a></li>
<li><a href="contact.php"><span class="l"></span><span class="r"></span><span class="t">Contact</span></a></li>


Avent ma modification mon menu était sur chaque page de mon site, mais j'ai fait un "Include" pour éviter de modifier toute les pages a chaque modification, et j'avais une "class "active"" sur mes liens, la impossible de refaire la même chose j'ai testé la solution ci-dessus mais cela ne fonctionne pas.

Voila le nouveau "Menu_Haut.php":
<?php 
$page_en_cours = basename($_SERVER['SCRIPT_NAME']); 
?>

<li><a <?php if($page_en_cours == 'index.php') echo 'class="active"'; ?> href="index.php"><span class="l"></span><span class="r"></span><span class="t">Acceuil</span></a></li>

<li><a <?php if($page_en_cours == '#.php') echo 'class="active"'; ?> href="#"><span class="l"></span><span class="r"></span><span class="t">Catégories</span></a>
                			
                            <ul>
                			<li><a <?php if($page_en_cours == 'tableau.php') echo 'class="active"'; ?> href="tableau.php" title="Tableau">Tableau</a></li>
                            <li><a <?php if($page_en_cours == 'popart.php') echo 'class="active"'; ?> href="popart.php" title="Pop Art">Pop Art</a></li>
                            <li><a <?php if($page_en_cours == 'noir_et_blanc.php') echo 'class="active"'; ?> href="noir_et_blanc.php" title="Noir & Blanc">Noir & Blanc</a></li>
                            <li><a <?php if($page_en_cours == 'wallpaper.php') echo 'class="active"'; ?> href="wallpaper.php" title="Fond décran">Fond d'écran</a></li>
                            <li><a <?php if($page_en_cours == 'montage.php') echo 'class="active"'; ?> href="montage.php" title="Montage">Montage</a></li>
                            <li><a <?php if($page_en_cours == 'makeover.php') echo 'class="active"'; ?> href="makeover.php" title="Makeover">Makeover</a></li>
                            <li><a <?php if($page_en_cours == 'graffiti.php') echo 'class="active"'; ?> href="graffiti.php" title="Graffiti">Graffiti</a></li>
                			</ul></li>

<li><a <?php if($page_en_cours == 'ftp.php') echo 'class="active"'; ?> href="ftp.php"><span class="l"></span><span class="r"></span><span class="t">FTP</span></a></li>
<li><a <?php if($page_en_cours == 'liens.php') echo 'class="active"'; ?> href="liens.php"><span class="l"></span><span class="r"></span><span class="t">Liens</span></a></li>
<li><a <?php if($page_en_cours == 'contact.php') echo 'class="active"'; ?> href="contact.php"><span class="l"></span><span class="r"></span><span class="t">Contact</span></a></li>


Enfin cela fonctionne pour index, ftp, liens et contact, il y a que catégorie ou cela ne fonctionne pas, j'ai beau avoir fait plusieurs test cella ne fonctionne pas.

Merci de votre aide.
Bonsoir,
je suis tombé par hasard sur ce post, mais je n'arrive pas a afficher la class active.
	<li><a  <?php if ($page == 'information-a-hotel.php') echo 'class="active"'; ?>			href="information-a-hotel.php">Welcome</a></li>
	<li><a <?php if ($page == 'chambres-a-hotel.php') echo 'class="active"'; ?>				href="chambres-a-hotel.php"  >About us</a></li>
	<li><a <?php if ($page == 'resa-a-hotel.php') echo 'class="active"'; ?>				href="resa-a-hotel.php.php" >Services</a></li>
	<li><a <?php if ($page == 'plan-acces-a-hotel') echo 'class="active"'; ?>			href="plan-acces-a-hotel"  >Testimonials</a></li>
	<li><a <?php if ($page == 'guide-touristique-a-hotel.php') echo 'class="active"'; ?>	href="guide-touristique-a-hotel.php"  >Contact us</a></li>


Où faut-il mettre <?php $page = basename($_SERVER['SCRIPT_NAME']); ?> pour récupérer le changement de page ?

Je l'ai mis sur toutes les pages suivantes: guide-touristique-a-hotel.php, plan-acces-a-hotel, chambres-a-hotel.php, information-a-hotel.php mais il se passe rien.

Egalement testé uniquement sur ma d’accueil (information-a-hotel.php) la même chose

Merci pour votre aide.
nomisalsa a écrit :
Bonsoir,
je suis tombé par hasard sur ce post, mais je n'arrive pas a afficher la class active.
	&lt;li&gt;&lt;a  &lt;?php if ($page == 'information-a-hotel.php') echo 'class=&quot;active&quot;'; ?&gt;			href=&quot;information-a-hotel.php&quot;&gt;Welcome&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a &lt;?php if ($page == 'chambres-a-hotel.php') echo 'class=&quot;active&quot;'; ?&gt;				href=&quot;chambres-a-hotel.php&quot;  &gt;About us&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a &lt;?php if ($page == 'resa-a-hotel.php') echo 'class=&quot;active&quot;'; ?&gt;				href=&quot;resa-a-hotel.php.php&quot; &gt;Services&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a &lt;?php if ($page == 'plan-acces-a-hotel') echo 'class=&quot;active&quot;'; ?&gt;			href=&quot;plan-acces-a-hotel&quot;  &gt;Testimonials&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a &lt;?php if ($page == 'guide-touristique-a-hotel.php') echo 'class=&quot;active&quot;'; ?&gt;	href=&quot;guide-touristique-a-hotel.php&quot;  &gt;Contact us&lt;/a&gt;&lt;/li&gt;


Où faut-il mettre &lt;?php $page = basename($_SERVER['SCRIPT_NAME']); ?&gt; pour récupérer le changement de page ?

Je l'ai mis sur toutes les pages suivantes: guide-touristique-a-hotel.php, plan-acces-a-hotel, chambres-a-hotel.php, information-a-hotel.php mais il se passe rien.

Egalement testé uniquement sur ma d’accueil (information-a-hotel.php) la même chose

Merci pour votre aide.


Logiquement se morceau de code devrait se trouver à chaque début de page puisque la variable doit exister avant de pouvoir être utiliser (préféré quand même la solution d'un fichier "header" qui sera inclus sur chaque page)

La variable $page aura la valeur du nom du script sur lequel vous êtes actuellement.

Plus d'information sur basename
Plus d'information sur $_SERVER

Avec $_SERVER vous pouvez entre autre récupérer le nom de la page d'où vous venez pour par exemple faire un lien vers la page précédente !
Modifié par vallsymachinant (29 Mar 2011 - 15:30)