Rechercher : dans
Par :

Menu active

Dernière réponse le 6 fév 2009 à 13:32:07 cassiope69, le 6 fév 2009 à 11:14:00 
 Signaler ce message aux modérateurs

Bonjour,
je réalise actuellement un site et j'aimerais que la lien vers la page actuelle soit d'une couleur différente alors j'ai fait mes recherches sur le net et j'ai découvert qu'il fallait du code PHP qui test la page pour savoir laquelle est active

voici la code de la page menu :

<ul id="menu">
<li><a href="index.php" <?php
if ($_SERVER['REQUEST_URI'] == 'index.php')
{
$class="class='active'";
}
else
{
$class="class='menuhaut'";
}
echo $class;
?> target="_self">• Accueil</a>
</li>
<li><a href="inscription.php" <?php
if ($_SERVER['REQUEST_URI'] == 'inscription.php')
{
$class="class='active'";
}
else
{
$class="class='menuhaut'";
}
echo $class;
?> target="_self">• Inscription</a>
</li>
<li><a href="connexion.php" <?php
if ($_SERVER['REQUEST_URI'] == 'connexion.php')
{
$class="class='active'";
}
else
{
$class="class='menuhaut'";
}
echo $class;
?> target="_self">• Connexion</a>
</li>
<li><a href="deconnexion.php" <?php
if ($_SERVER['REQUEST_URI'] == 'deconnexion.php')
{
$class="class='active'";
}
else
{
$class="class='menuhaut'";
}
echo $class;
?> target="_self">• Déconnexion</a>
</li>
</ul>



et voici le code de la CSS :


ul#menu
{
margin:30;
padding:0;
list-style-type:none;
width:1180px;
position:relative;
display:block;
height:30px;
.....
}

ul#menu li
{
display:block;
float:left;
margin:0;
padding:0;
}

ul#menu li a
{
display:block;
float:left;
color:white;
...
}

ul#menu li a:hover
{
color:#FFFFFF;
height:22px;
background:transparent url(images/menu_noir.png) 0px -30px no-repeat;
}


ul#menu li a:active
{
color:#FFFFFF;
height:22px;
background:transparent url(images/menu_noir.png) 0px -30px no-repeat;
}



Le problème est que le code généré par le menu donne pour tous les liens même celui séléctionné
class='menuhaut'

Est ce que quelqu'un aurait des solutions afin de m'aider???

Merci d'avance ;)

Configuration: Windows Vista
Firefox 3.0.5

Meilleures réponses pour « menu active » dans :
Activer/désactiver les services au démarrage VoirMéthode simple Pour voir la liste des services, aller dans le menu "Système" > "Administration" > "Services". Cochez/décochez les services que vous souhaitez activer/désactiver. Note: Cette fenêtre n'affiche pas tous les services....
Comment créer une carte de menu de Noël VoirQuoi de plus "fashion" que de présenter une carte/un carton de menu de Noël ! Sympa, élégant, rigolo aussi, c'est selon ! Voici une petite astuce qui vous guidera dans votre création et... votre créativité ! Sommaire Choisir le menu de...
Windows 7 - Barre des tâches et menu démarrer VoirLA BARRE DES TACHES ET LE MENU DEMARRER Cet élément clé du Bureau de Windows est situé en bas de l’écran, sur toute sa largeur. C’est l’un des aspects du système qui a le plus évolué entre Windows Vista et Windows 7. Pour commencer, elle est plus...
Active Directory VoirPrésentation de Active Directory Active Directory est le nom du service d'annuaire de Microsoft apparu dans le système d'exploitation Microsoft Windows Server 2000. Le service d'annuaire Active Directory est basé sur les standards TCP/IP : DNS,...
Principes d'Active Directory VoirPrincipe de fonctionnement d'Active Directory Active Directory permet de représenter et de stocker les éléments constitutifs du réseau (les ressources informatiques mais également les utilisateurs) sous formes d'objets, c'est-à-dire un ensemble...

1

Psyk974, le 6 fév 2009 à 11:28:33

Fait un echo sur ta variable "$_SERVER['REQUEST_URI']" tu comprendras peut être d'où vient ton erreur ;)

Répondre à Psyk974

2

cassiope69, le 6 fév 2009 à 11:33:34

Une grosse erreur mais je ne sait pas ce que je dois mettre ...

Répondre à cassiope69

3

Psyk974, le 6 fév 2009 à 11:35:39

Normalement tu ne devrais pas avoir d'erreur mais un truc du style : "page_en_cours.php"

Répondre à Psyk974

4

cassiope69, le 6 fév 2009 à 11:42:07

Je ne vois pas ce que je dois faire pour résoudre le problème...

Répondre à cassiope69

5

Psyk974, le 6 fév 2009 à 11:45:12

Utilise ce petit code afin de bien récupérer le nom de ta page :)

<?php
$nom_page= substr($_SERVER["PHP_SELF"], strrpos($_SERVER["PHP_SELF"], '/')+1, strrpos($_SERVER["PHP_SELF"],'.')-1);

echo $nom_page;
?>

Répondre à Psyk974

6

cassiope69, le 6 fév 2009 à 11:52:11

Parfait ça recupère bien le nom de la page.
Par contre lors de mon if si je met if $nom_page == 'index.php') ça me met une erreur, est ce que je dois remettre pour chaque ligne tout le code ou il y a une autre manière pour mettre simpletement $nom_page ???

Répondre à cassiope69

7

Psyk974, le 6 fév 2009 à 12:33:57

Ok, place le bout de code tout en haut de la page principale ensuite tu peux utiliser la variable $nom_page dans toute la page.

Petite question, comment tu appelles tes autres pages ?

Répondre à Psyk974

8

cassiope69, le 6 fév 2009 à 12:37:48

C'est ce que j'ai fait j'ai mis ton code au début de la page et j'ai repris le $nom_page pour chaque if et ca me met ce message :
Parse error: parse error, unexpected T_VARIABLE, expecting '(' in C:\Program Files\EasyPHP 2.0b1\www\site.php\menu.php on line 8

Mes autres pages sont appelées dans cette page ( le menu )

Répondre à cassiope69

9

Psyk974, le 6 fév 2009 à 12:44:19

D'accord on dirait que je vois ce que tu fais et c'est pas la bonne solution.
As-tu déjà entendu parler des "includes" en PHP ?

Répondre à Psyk974

10

cassiope69, le 6 fév 2009 à 12:45:48

Oui je connais mais il faut bien que les pages de mon menu appellent mes pages...
Pourquoi ça ne marche pas??

Répondre à cassiope69

11

Psyk974, le 6 fév 2009 à 12:55:51

Ton site doit se présenter de la manière suivante.

<?php

if ($_GET['page']=='accueil') {
echo '<a style="color:red;" class="menu_active" href="index.php?page=accueil">Accueil</a><br/>';
}
else {
echo '<a class="menu_inactive" href="index.php?page=accueil">Accueil</a><br/>';
}

if ($_GET['page']=='inscription') {
echo '<a style="color:red;" class="menu_active" href="index.php?page=inscription">inscription</a><br/>';
}
else {
echo '<a class="menu_inactive" href="index.php?page=inscription">inscription</a><br/>';
}

if ($_GET['page']=='connexion') {
echo '<a style="color:red;" class="menu_active" href="index.php?page=connexion">connexion</a><br/>';
}
else {
echo '<a class="menu_inactive" href="index.php?page=connexion">connexion</a><br/>';
}
//etc

switch ($_GET['page']) {
case 'accueil': include("accueil.php");break;
case 'inscription': include("inscription.php");break;
case 'connexion': include("connexion.php");break;
//etc
}

?>

Essai de comprendre ce que fais ce code, je pense que ça va t'éclairer

Répondre à Psyk974

12

 cassiope69, le 6 fév 2009 à 13:32:07

Oula c'est compliqué je vais tester...
Merci de ton aide

Répondre à cassiope69
Collection CommentÇaMarche.net