Mise en forme lorsque l'on se trouve sur un site

Fermé
php - Modifié par jordane45 le 4/01/2016 à 09:59
jordane45 Messages postés 38174 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 mai 2024 - 4 janv. 2016 à 11:14
Bonjour,

Je souhaite souligner du texte d'une bar de navigation mais lorsque je me trouve sur un site, la page concernée dans la bar de navigation ne se souligne pas.

Voici le code PHP :
function write_nav($complete_uri, $uri, $text){
 // on recupere le path de l'url (retourne /site/form/xxx)
 $url = parse_url ( $complete_uri );
 // on la découpe avec la fonction explode
 $path_info = explode ( '/site/', $url ['path'] );
 // on verifie si le path est égal au site concerné
        // $path_info est un tableau contenant deux éléments
        // première élément : " " size=0
        // deuxième élément : "/form/xxx" size="9";
 if ( $path_info [1] == $uri) {
  // On affiche l'élément en gras et en souligné pour que l'utilisateur sache où il se trouve sur le site
  echo "<u><b>$text</b></u>";
 } else {
  echo $text;
 }
}



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.


Merci d'avance pour votre aide.

2 réponses

jordane45 Messages postés 38174 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 mai 2024 4 666
4 janv. 2016 à 10:02
Bonjour,

1 - Evites de mettre un espace dans ta variable tableau
$path_info [1]

A écrire plutot :
$path_info[1]


2 - As tu vérifié le contenu de tes différentes variables pour voir si elles sont ok ?

3 - On ne sait pas comment ni où tu appelles cette fonction.



0
Merci de votre réponse.

Pour le 1-, ce n'est pas moi qui le fait mais l'IDE lorsque je fais l'indentation automatique avec un raccourci clavier.
2- Oui j'ai fait un var_dump sur chaque variable, il m'écrit bien le type et son contenu.
Il y a quelque chose que je ne comprends, lorsque j'écris ce code en brut sur l'élément voulu, le texte se met bien en gras et est souligné mais il le fait tout le temps. Lorsque je passe à autre page, la condition :
 if ( $path_info [1] == $uri)
devrait passer à false mais ce n'est pas le cas. Et lorsque j'écris la fonction et que je l'appelle :
	<div class="col-md-2">
		<ul class="navigationbar">
			<li id="navigation"><a href="<?php echo $distri; ?>"><?php write_nav($distri, '/form/distribution', "Distribution de l'eau");?>
		  													<img src="<?php echo $rouge; ?>" id="reponse"></a></li>
			<li id="navigation"><a href="<?php echo $pol; ?>">Autre pollutions<img
					src="<?php echo $rouge; ?>" id="reponse"></a></li>
			<li id="navigation"><a href="<?php echo $analyse; ?>">Analyse d'eau <img
					src="<?php echo $rouge; ?>" id="reponse"></a></li>
			<li id="navigation"><a href="<?php echo $actions; ?>">Actions mises
					en place <img src="<?php echo $rouge; ?>" id="reponse">
			</a></li>
			<li id="navigation"><a href="<?php echo $foncier; ?>">Foncier <img
					src="<?php echo $rouge; ?>" id="reponse"></a></li>
		</ul>
	</div>


Merci d'avance
0
jordane45 Messages postés 38174 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 mai 2024 4 666
4 janv. 2016 à 11:14

Lorsque je passe à autre page, la condition :

if ( $path_info [1] == $uri)

devrait passer à false mais ce n'est pas le cas

Et que valent tes variables à ce moment là ?
Si tu en fais des ECHO ... qu'est-ce que ça donne ?
0