Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2958 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Changer couleur du lien de la page active

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Changer couleur du lien de la page active

n°1994737
djodjolyon
Posté le 20-05-2010 à 13:04:03  profilanswer
 

Salut!
 
J'aurai besoin d'un petit coup de main svp.
 
Je voudrais surligner le lien de ma page active dans mon menu pour que l'utilisateur puisse savoir où il se trouve.
Mon code de départ est celui-ci (il fonctionne) :

Code :
  1. <a href="/fr/galeries.php"<?php echo ($_SERVER['REQUEST_URI'] == "/fr/galeries.php" )?'class="li_actif"':'' ?>>GALERIES PHOTO</a></li>

Mais je voudrais aussi que le lien soit actif quand je suis sur une page qui commence par /fr/galeries/
J'ai essayé ce code mais ça ne fonctionne pas.

Code :
  1. <a href="/fr/galeries.php"<?php echo ($_SERVER['REQUEST_URI'] == "/fr/galeries.php" || "/fr/galeries/" )?'class="li_actif"':'' ?>>GALERIES PHOTO</a></li>

Merci!!


Message édité par djodjolyon le 21-05-2010 à 16:37:41
mood
Publicité
Posté le 20-05-2010 à 13:04:03  profilanswer
 

n°1994738
Deamon
Posté le 20-05-2010 à 13:12:34  profilanswer
 

Quand tu veux tester si A est égale à 1 ou 0 tu fais ; A == 1 || A == 0.
Sinon suivant ce que tu veux faire tu peux vérifier si ça commence par "/fr/galeries".


Message édité par Deamon le 20-05-2010 à 13:13:38
n°1994739
MonsieurY
Posté le 20-05-2010 à 13:14:56  profilanswer
 

La précédence de == est supérieure à celle de ||
 
Donc ton code est interprété de cette manière :
1 - ($_SERVER['REQUEST_URI'] == "/fr/galeries.php" || "/fr/galeries/" )
2 - $_SERVER['REQUEST_URI'] == "/fr/galeries.php" || "/fr/galeries/"
3 - true || "/fr/galeries/"
ou
3 - false || "/fr/galeries/"
4 - true (dans le premier cas, la string est ignorée, dans le second elle est castée en booléenne et comme elle est non nulle/vide elle retourne true)
 
Il faut que tu écrive plutôt :
($_SERVER['REQUEST_URI'] == "/fr/galeries.php" || $_SERVER['REQUEST_URI'] == "/fr/galeries/" )
 
http://www.php.net/manual/en/langu [...] edence.php

n°1994740
djodjolyon
Posté le 20-05-2010 à 13:21:39  profilanswer
 

J'ai pas préciser que je ne connais pas le php...
Comment fait-on pour vérifier que ça commence par "/fr/galeries"?
Merci
 
[Edit]Pas vu la réponse de Monsieur Y[Edit]


Message édité par djodjolyon le 20-05-2010 à 13:29:42
n°1994742
djodjolyon
Posté le 20-05-2010 à 13:37:39  profilanswer
 

Merci pour les précision Monsieur Y même si c'est encore un peu abstrait pour moi...
Donc j'ai essayé avec ($_SERVER['REQUEST_URI'] == "/fr/galeries.php" || $_SERVER['REQUEST_URI'] == "/fr/galeries/" ).
Ca fonctionne si je met l'adresse complète /fr/galeries/exemple/xxx.php mais pas avec la moitié de l'adresse /fr/galeries/.
Comment faire pour que toutes les adresses commençant par /fr/galeries/ soient prisent en compte?

Message cité 1 fois
Message édité par djodjolyon le 20-05-2010 à 14:01:05
n°1994802
Paulp
~, sweet ~
Posté le 20-05-2010 à 16:13:47  profilanswer
 

djodjolyon a écrit :

Merci pour les précision Monsieur Y même si c'est encore un peu abstrait pour moi...
Donc j'ai essayé avec ($_SERVER['REQUEST_URI'] == "/fr/galeries.php" || $_SERVER['REQUEST_URI'] == "/fr/galeries/" ).
Ca fonctionne si je met l'adresse complète /fr/galeries/exemple/xxx.php mais pas avec la moitié de l'adresse /fr/galeries/.
Comment faire pour que toutes les adresses commençant par /fr/galeries/ soient prisent en compte?


Code :
  1. preg_match('/^\/fr\/galeries/',$_SERVER['REQUEST_URI'])


/^\/fr\/galeries/ est une expression régulière.
 
Si on la décompose :

  • englobée par des / pour la délimiter
  • ^ vérifie qu'on est au début de la chaîne de caractère
  • \/ vérifie qu'on trouve un / (on met un \ devant pour qu'il ne soit pas compris comme un délimiteur)
  • ^\/fr\/galeries signifie donc : une chaîne de caractères commençant par /fr/galeries

n°1994878
djodjolyon
Posté le 20-05-2010 à 19:51:17  profilanswer
 

Parfait ça fonctionne!!!
Merci  à tous ;)
Voilà le code final...

Code :
  1. <a href="/fr/galeries.php"<?php echo (preg_match('/^\/galeries/',$_SERVER['REQUEST_URI']) || $_SERVER['REQUEST_URI'] == "/fr/galeries.php" ) ?'class="li_actif"':'' ?>>GALERIES PHOTO</a>


Bonne soirrée


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Changer couleur du lien de la page active

 

Sujets relatifs
[résolu] plugin svg pour IE8[RESOLU] probleme de curseur jquery
reponse optenue sujet terminer[résolu]fonction prenant en compte une url brute d'une image
[Résolu] Isoler les entrées uniques Access[Résolu] Tri personnalisé avec "order by"
Envoi de mail et lien hrefFormulaire PHP, retour sur ma page d'origine
[résolu] modification du contenu d'une page en fonction d'un paramètre 
Plus de sujets relatifs à : [Résolu] Changer couleur du lien de la page active


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR