8800 sujets

Développement web côté serveur, CMS

Bonsoir,

Je construis un nouveau site et je voudrais que le lien de la page active soit marqué via mon CSS. Pour le moment je le fais en JS mais ça ne me convient pas, trop compliqué.
Tous les noms des pages sont stockés dans une base de donnée, si la page demandée est dans la BDD, j'affiche celle ci, si non j'affiche la page "accueil".
Le résultat recherché, si on affiche la page devis, je veux attribuer une couleur sur le mot "Devis" du menu. Voir le résultat en ligne, mais donc en javascript, à l'adresse suivante : http://www.demarchez.net/DIANETTOYAGE/

Même si ça marche, je souhaite simplifier mon code pour des utilisations futurs.

Voici le code de ma page index :
<?php 
include "../../__mon répertoire config / mon fichier config";
include "../../__mon répertoire config / mon fichier functions";

connexion();

  if (isset($_GET["page"])) 
	$page = $_GET["page"]; 
	else $page="accueil";
  {
	$page_aff = htmlspecialchars("pages/");
	$requete = "SELECT page FROM dianet_pages WHERE page = '$page'";
  	$result = mysql_query($requete, $connexion) or die(mysql_error());
	$page_enreg = mysql_fetch_array($result);
	
		if ($page_enreg["page"] == $page)
		{
			$page_aff .= $page_enreg["page"] . ".php";
		}
		else if ($page_enreg["page"] != $page)
		{
			$page_aff .= accueil . ".php";
		}
  }
?>


Dans le body

<!-- Menu haut -->
Ici j'affiche le menu
<?php include ("$include/menu_haut.inc"); ?>
<!-- Fin menu -->

<!-- Bloc principal -->
Ici j'affiche le contenu de la page, toutes les pages sont chargées dans la page index
<?php include $page_aff; ?>

Le fichier menu_haut.inc

<div id='main_menu_container'>
<ul id='main_menu'>
<li id='menu_item_0'><a id='link_0' href='index.php?page=accueil' onClick="addMenuEffect('0');" title="Accueil" />Accueil</a></li>
<li id='menu_item_1'><a id='link_1' href='index.php?page=service' onClick="addMenuEffect('1');" title="Service" />Service</a></li>
<li id='menu_item_2'><a id='link_2' href='index.php?page=devis' onClick="addMenuEffect('2');" title="Devis" />Devis</a></li>
<li id='menu_item_3'><a id='link_3' href='index.php?page=delais' onClick="addMenuEffect('3');" title="Délais" />Délais</a></li>
<li id='menu_item_4'><a id='link_4' href='index.php?page=qualite' onClick="addMenuEffect('4');" title="Qualité" />Qualité</a></li>
<li id='menu_item_5'><a id='link_5' href='index.php?page=garanties' onClick="addMenuEffect('5');" title="Garanties" />Garanties</a></li>
<li id='menu_item_6'><a id='link_6' href='index.php?page=contact' onClick="addMenuEffect('6');" title="Contact" />Contact</a></li>
</ul>
</div>

Merci pour vos conseils.

JP_Forrest
Il te suffit de vérifier à nouveau ta variable page dans le lien... par exemple :

<li id='menu_item_1'><a id='link_1' href='index.php?page=service' onClick="addMenuEffect('1');" title="Service" <?php echo $page == 'service' ? ' class="actif"' : ''; ?> />Service</a></li>


Puis de styler le lien actif dans tes css Smiley smile
Modifié par Nukleo (19 Jan 2011 - 18:11)
Bonsoir,

Merci pour ta réponse !

Juste une question après class="actif"
Pourquoi " : " ?

Si non c'était effectivement simple, je vais tester je reviendrai pour clôturer le sujet.

JP
JP_Forrest a écrit :
Bonsoir,

Merci pour ta réponse !

Juste une question après class=&quot;actif&quot;
Pourquoi &quot; : &quot;

Si non c'était effectivement simple, je vais tester je reviendrai pour clôturer le sujet.

JP
Bonsoir,

J'avais promis de venir clôturer ce sujet, voici le code final :
Code PHP
<?php
  if (isset($_GET["page"])) 
	$page = $_GET["page"]; 
	else $page="accueil";
  {
	$page_aff = htmlspecialchars("pages/");
	$requete = "SELECT page, id_menu FROM dianet_pages WHERE page = '$page'";
  	$result = mysql_query($requete, $connexion) or die(mysql_error());
	$page_enreg = mysql_fetch_array($result);
	
		if ($page_enreg["page"] == $page)
		{
			$page_aff .= $page_enreg["page"] . ".php";
		}
		else if ($page_enreg["page"] != $page)
		{
			$page_aff .= accueil . ".php";
		}
  }

//habillage menu liè au fichier CSS
	//variables
	$id_menu = $page_enreg["id_menu"]; //habillage menu haut
	$aff_menu_gauche = $page_enreg["page"]; //habillage menu gauche
	
	//conditions habillage menu gauche
	if (($id_menu == $page_enreg["id_menu"])&&($page == $page_enreg["page"]))
		{
			$aff_menu_gauche;
		}
?>


Fichier include du menu haut
<div id='main_menu_container'>
	<ul id='main_menu'>
		<li id='menu_item_0'><a id='link_0' href='index.php?page=accueil' title="Accueil" <?php echo $id_menu == 1 ? ' class="active" ':''; ?> />Accueil</a></li>
		
		<li id='menu_item_1'><a id='link_1' href='index.php?page=service' title="Service" <?php echo $id_menu == 2 ? ' class="active" ':''; ?> />Service</a></li>
		
		<li id='menu_item_2'><a id='link_2' href='index.php?page=devis' title="Devis" <?php echo $id_menu == 3 ? ' class="active" ':''; ?> />Devis</a></li>
		
		<li id='menu_item_3'><a id='link_3' href='index.php?page=delais' title="Délais" <?php echo $id_menu == 4 ? ' class="active" ':''; ?> />Délais</a></li>
		
		<li id='menu_item_4'><a id='link_4' href='index.php?page=qualite' title="Qualité" <?php echo $id_menu == 5 ? ' class="active" ':''; ?> />Qualité</a></li>
		
		<li id='menu_item_5'><a id='link_5' href='index.php?page=garanties' title="Garanties" <?php echo $id_menu == 6 ? ' class="active" ':''; ?> />Garanties</a></li>
		
		<li id='menu_item_6'><a id='link_6' href='index.php?page=contact' title="Contact" <?php echo $id_menu == 7 ? ' class="active" ':''; ?> />Contact</a></li>
	</ul>
</div>


Un des sous menu

<div id='sub_menu_container'>
	<ul id='sub_menu'>
		<li class='first_sub_menu' id='sub_menu_item_0'><a id='sub_link_0' href='index.php?page=qualite' title='Produits de nettoyage' <?php echo $aff_menu_gauche == 'qualite' ? ' class="active_menu_gauche" ':''; ?> />Produits de Nettoyage</a></li>
		
		<li id='sub_menu_item_1'><a id='sub_link_1' href='index.php?page=prod_danger' title='Les Produits Dangereux' <?php echo $aff_menu_gauche == 'prod_danger' ? ' class="active_menu_gauche" ':''; ?> />Produits Dangereux</a></li>
		
		<li id='sub_menu_item_1'><a id='sub_link_2' href='index.php?page=autres_prod' title='Autres Produits' <?php echo $aff_menu_gauche == 'autres_prod' ? ' class="active_menu_gauche" ':''; ?> />Autres Produits</a></li>
	</ul>
</div>


Le tout avec le fichier CSS et 2 tables contenant les noms des pages.
Et supprimé les fichiers javascripts

http://www.demarchez.net/DIANETTOYAGE/