Navigation et recuperation d'url

Résolu/Fermé
diice Messages postés 131 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 25 février 2017 - 2 sept. 2009 à 15:44
diice Messages postés 131 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 25 février 2017 - 2 sept. 2009 à 17:23
Bonjour à tous,

J'ai un souci qui j'avoue me laisse pantois !

j'ai un menu (en css) avec rollhover et tout le toutim...
j'aimerai qu'en fonction dunomde ma page le titre du menu en question change de couleur.

bon, jusque la ca ne me pose pas de probleme, sauf que... j'ai une 2 url pour une meme page ou je passe une variable pour les différencer. et la ca me pose soucis !

j'explique :
j'ai une page projet.php qui contient (quand il n'y a pas de variable d'url passé) les projets...
quand j'ajoute projet.php?th=gpe, je ramene les groupes (de musique, mais ca n'a pas d'interet....)

donc maintenant le code.

j'ai creer une fonction navmenu($page,$variable).la voici :
function navmenu($pagenav,$var)
{
	if (empty($var)) { $pageactu=$_SERVER['PHP_SELF']; }
	else { $pageactu=$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; }
	
	if ($pagenav==ereg_replace('=""','',$pageactu)) { echo ' style="color: #ffffff; background-color:#6a0102;"'; }
	else { echo ""; }
}

je passe donc la page en question ($pagenav, et je remplis $var si j'ai des variable derriere...

mon code menu :
<?Php $vari='?'.$_SERVER['QUERY_STRING']; ?>
<!-- DEBUT MENU -->
<ul id="menu">
  <li><a href="/contacts.php"<?Php navmenu('/contacts.php',''); ?>>contacts</a></li>
  <li><a href="/boutique.php"<?Php navmenu('/boutique.php',''); ?>>la boutique</a></li>
  <li><a href="/projet.php?th=gpe"<?Php navmenu('/projet.php'.$vari,'variables'); ?>>les groupes</a></li>
  <li><a href="/projet.php"<?Php navmenu('/projet.php',''); ?>>les projets</a></li>
  <li><a href="/index-test.php"<?Php navmenu('/index-test.php',''); ?>>accueil</a></li>
</ul>
<!-- FIN MENU -->


quand je clique sur "contacts", "boutique", "accueil", évidemment tout marche bien, mais quand je clique sur "projets" ou sur "groupe", j'ai les deux cases qui se mettent pareil...

pourtant dans la focntion, il me reconnait bien les PHP_SELF et QUERY_STRING, quand je les affiche je les ai bien dans ma page... mais j'arrive pas a distinguer le "projet.php" du "projet.php?th=gpe...

pour voir en live par exemple : http://www.canalespritzik.com/projet.php?id=12

j'avoue je bloque, si vous aviez un avis, une solution ???

merci d'avance !

4 réponses

Archeus01 Messages postés 1567 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 447
2 sept. 2009 à 16:25
[Edit] J'ai mal compris la demande[ /edit ]
Après avoir relu minutieusement :
tu dois utiliser $_get et tester si th existe. Ton code est quand même moche.
Le plus propre c'est quand même ou d'appeler toujours une nouvelle page, ou d'utiliser les variables pour savoir quelle page afficher. La tu fais un mix, c'est pas top.
0
diice Messages postés 131 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 25 février 2017 1
2 sept. 2009 à 16:33
oui c sur la le code, c une suite de test...

du coup des trucs ne sefent pas trop a la base, et y'a pas les verif :(.

en fait, je veux que mes cases menu (voir le site) se mettent dans une couleur lorsque les liens qui leur sont affectés correspondent a la page sur la quelle on est...

si on est sur contacts.php, que la case du menu "Contacts" se différencie des autres.

le souci c'est que j'ai 1 page pour 2 url, 2 themes quoi...

les projets, et les groupes... le graphisme de la page etant le meme, je passe une variable "th" qui va preciser a la page l'info concerné...

et quand je clique sur "Les projets", dans le menu, j'ai a la fois "les projets" et "les groupe" qui sont selectionné...

ma fonction pourtant demande bien de faire la différence entre si projet.php est seule, ou si y'a des variables derriere, c pour ca que je comprends pas...

Quand je les affiche dans mon code, quand je demande de m'afficher le PHP_SELf, il me met page.php="", du coup je peux pas les différencier...

est-ce plus clair ???
0
diice Messages postés 131 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 25 février 2017 1
2 sept. 2009 à 16:36
j'ai essayé avec des $_get.

le soucis suivant, c que projet.php appelle des projet.php?id='numero du projet'

et que projet.php?th=gpe appelle aussi projet.php?th=gpe&album='num de l'album'...

je voulais trouver un truc generique en fait, mais peut-etre dois-je le faire avec chaque variable appeller en $_get... effectivement, je vasi essayer ca...

merci, je te tiens au jus ! ;)
0
Archeus01 Messages postés 1567 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 447
2 sept. 2009 à 16:39
$_get['th] regardera uniquement la valeur de th... (et pense à faire un if (isset($_get['th]) && $_get['th]=='gpe'))
0
diice Messages postés 131 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 25 février 2017 1
2 sept. 2009 à 17:23
Ca marche !!!!!

merci beaucoup ;)

voici donc le code de la fonction qui marche :
function navmenu($pagenav)
{
$styleaff=' style="color: #ffffff; background-color:#6a0102;"';

if (isset($_GET['th']) && ($_GET['th']=='gpe')) {
	$pageactu=$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
} 
else {
	$pageactu=$_SERVER['PHP_SELF'];
}


if ($pagenav==$pageactu) { echo $styleaff; }

}

j'ai donc enlever le deuxieme element qui servait donc a rien...

merci encore Archeus01 !! :)
0