Mettre en gras partie liste dynamique

TRUNCKS Messages postés 1019 Date d'inscription   Statut Membre Dernière intervention   -  
dariumis Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à vous,

J'ai un petit menu déroulant qui se génère dynamiquement:

<li class="toggleSubMenu"><span>Menu Principal</span>   
           
           
            <li><?php include ('menu-deroulant.php');?></li>   
           
    </li>   

Le code qui génère le menu:

$sql_cat = "SELECT ID_categorie, nom_categorie   
                        FROM categories    
                        ORDER BY ID_categorie DESC";   
                           
$req_cat = mysql_query($sql_cat) or die('Erreur SQL !<br />'.$sql_cat.'<br />'.mysql_error());   
    
while($data_cat = mysql_fetch_array($req_cat)){   
        echo '<div id="categorie">'.'<a href="page-'.$data_cat['ID_categorie'].'.html">'.$data_cat['nom_categorie'].'</a>';}   


Ma question est: comment je pourrais, sur la page où je vais atterir, quand je récupère l'ID, que la catégorie que j'ai sélectionnée, reste en gras pour m'indiquer sur quel catégorie je suis:

Si je clique sur la catégorie2:

Catégorie1
Catégorie2
Catégorie3

Merci à vous
A voir également:

3 réponses

dariumis Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   63
 
Salut, il faudrait déjà que les fichier soit des fichiers PHP, là je vois que ton lien pointe vers des fichiers html. sinon tu pourrais envoyer en get dans le lien la catégorie:

while($data_cat = mysql_fetch_array($req_cat)){    
        echo ' 
              <div id="categorie"> 
                   <a href="page-'.$data_cat['ID_categorie'].'.php?cat=".$data_cat['ID_categorie']> 
                           '.$data_cat['nom_categorie'].' 
                   </a>'; 
 }   


Donc on fait partir la catégorie dans cat, puis dans le fichier cible, on le récupère:

if(isset($_GET['cat'])){ 
     $cat=$_GET['cat']; 
}else{ 
     $cat=-1; 
} 


Puis quant tu écrit le menu tu teste cette variable get avec les entrée de la base:

while($data_cat = mysql_fetch_array($req_cat)){    
     if($data_cat['ID_categorie']==$cat){ 
          $style="style=\"font-weight:bold;\""; 
     }else{ 
          $style=""; 
     } 
        echo '<div id="categorie">'.'<a '.$style.' href="page-'.$data_cat['ID_categorie'].'.html">'.$data_cat['nom_categorie'].'</a>';}    
0
dariumis Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   63
 
Ou alors c'est peut être réalisable simplement comme ceci:

while($data_cat = mysql_fetch_array($req_cat)){    
     if($_SERVER['PHP_SELF']=="page-".$data_cat['ID_categorie']){ 
          $style="style=\"font-weight:bold;\""; 
     }else{ 
          $style=""; 
     } 
        echo '<div id="categorie">'.'<a '.$style.' href="page-'.$data_cat['ID_categorie'].'.html">'.$data_cat['nom_categorie'].'</a>';}


Je sais pas trop à tester.
0
TRUNCKS Messages postés 1019 Date d'inscription   Statut Membre Dernière intervention   7
 
Merci pour la réponse,

Le soucis c'est que je n'ai pas de GET dans mon menu déroulant, il prend toutes les catégories de la bdd et les affichent.

Il n'attend pas de variable pour s'afficher.
0
dariumis Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   63
 
Je saisie pas trop, tu peux pas modifier le code comme j'ai mis en haut??? Mais sans parler de GET le dernier code, il ne marche pas???

while($data_cat = mysql_fetch_array($req_cat)){    //dans ta boucle
     //si le nom de la page est égale à l'entrée
     if($_SERVER['PHP_SELF']=="page-".$data_cat['ID_categorie']){ 
          //tu initialise un style
          $style="style=\"font-weight:bold;\""; 
     }else{ //sinon
         // pas de style
          $style=""; 
     } 
      //puis tu écrits le style dans le lien....
        echo '<div id="categorie">'.'<a '.$style.' href="page-'.$data_cat['ID_categorie'].'.html">'.$data_cat['nom_categorie'].'</a>';}
0