Menu dynamique et changement de style

Signaler
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
-
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
-
Bonjour,

j'ai un menu php générer dynamiquement via une BDD.

Chaque element du menu possède un lien (href).

je souhaiterai savoir comment puis-je faire pour vérifier l'élément actuellement actif et donc changer son style css (ex. color) ?

Ex:
je clic sur un element du menu --> changement de page vers l'url du href de l'element cliqué ---> et la je souhaite changer le style de l'element precedement cliqué

merci pour votre aide

6 réponses

Messages postés
61
Date d'inscription
vendredi 1 octobre 2004
Statut
Membre
Dernière intervention
1 octobre 2009

Salut,

essaie avec a:link, a:visited et a:hover dans ton fichier css

a:link, a:visited{
    color: #xxxxxx;
    etc ....
}
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
23
Bonjour, j'ai ca (a adapter) :


La table "TITREMENU":
IDauto
TITRE (titre du sommaire)
LIEN (url de la page en lien)


Dans le CSS (styles.css) :
/* ------------------- */
/* -- page active -- */
.titreMenustyle1 {
   font-size: 10pt;
   font-weight: bold;
}
/* - autres pages - */
.titreMenustyle0 {
   font-size: 8pt;
   font-style: italic;
}
/* ------------------- */


Dans le fichier SOMMAIRE.php (mis en include dans les pages) :
<?php
// ------------------------------
// ... connexion a la BD, ... etc
// ------------------------------
// recuperation des TITRES du sommaire
 $query_menu = 'SELECT * FROM TITREMENU";
 $result_menu = mysql_query($query_menu)  or die('Erreur SQL : '.$query_menu.'
'.mysql_error());
 $val_menu = mysql_fetch_array($result_menu);
// ------------------------------
// affichage
$i = 1;
while ($val = mysql_fetch_array($resultSELECT))
{
  // definir le STYLE des TITRES du sommaire
   if (@$_GET['titrerecup']==$i) { $stylemenu = 'titreMenustyle1'; }
  else { $stylemenu = 'titreMenustyle0'; }
  // afficher des TITRES du sommaire, avec lien
?>
   [<?php echo $val_menu['LIEN']; ?>?&titrerecup=<?php echo $i; ?> ">
   <?php echo $val_menu['TITRE']; ?>]

<?php
$i++;
}
?>
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
23
Correction :
...
while ($val = mysql_fetch_array($val_menu))
...
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
23
Re-corrections (j'ai adapté cet exemple depuis un script existant qui fonctionne un peu differemment ...)

Dans le fichier SOMMAIRE.php (mis en include dans les pages) :
<?php
// ------------------------------
// ... connexion a la BD, ... etc
// ------------------------------
// recuperation des TITRES du sommaire
 $query_menu = 'SELECT * FROM TITREMENU";
 $result_menu = mysql_query($query_menu)  or die('Erreur SQL : '.$query_menu.'
'.mysql_error());
// ------------------------------
// affichage
$i = 1;
while ($val_menu = mysql_fetch_array($result_menu))
{
  // definir le STYLE des TITRES du sommaire
   if (@$_GET['titrerecup']==$i) { $stylemenu = 'titreMenustyle1'; }
  else { $stylemenu = 'titreMenustyle0'; }
  // afficher des TITRES du sommaire, avec lien
?>
   [<?php echo $val_menu['LIEN']; ?>?&titrerecup=<?php echo $i; ?> ">
   <?php echo $val_menu['TITRE']; ?>]

<?php
$i++;
}
?>
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
23
J'ai oublié de préciser que cet exemple affiche le Titre de la page en cours en "gros et gras" et les uatres en plus petit.
(independemment des styles a:link, a:visited, a:hover ...)
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
23