lien sélectionné

vertigo
Invité n'ayant pas de compte PHPfrance

12 juin 2005, 14:14

Voilà, j'ai créé un menu en php à partir de données contenues dans une mysql

le menu fonctionne bien.
j'affiche mes rubriques et sous-rubriques en cliquant sur chaque niveau.
Cela me donne un menu affiche sous forme de liste.

Mais je voudrais que lorsqu'un lien est activé (une rubrique), la couleur change

Pour cela je cherche un petit code javascript mais je ne connais pas ce langage.

pouriez-vous m'aider ?

merci d'avance

Invité
Invité n'ayant pas de compte PHPfrance

13 juin 2005, 11:09

Pour faire cela, tu as la possibilité d'utiliser du CSS avec la propriété :visited.
Cela revient à faire:

a:visited {
color: tanouvellecouleur;
}

Tu peux également changer la couleur de ton lien au moment du clic avec quelque chose du style:

onClick="this.style='color:tanouvellecouleur'"

Je te conseillerais plus le CSS car cela te permets d'appliquer ce changement à tous les liens d'un seul coup.

vertigo
Invité n'ayant pas de compte PHPfrance

13 juin 2005, 20:45

en fait c'est un peu plus compliqué que cela.

Je ne désire pas changer tous les liens d'un seul coup mais seulement le le lien qui est cliqué.

je m'explique. Les rubriques de mon menu sont renvoyées depuis une base de données et récupérées sous la variable $rub (en php)
C'est à dire que pour le résultat de toutes les rubriques d'un niveau donné (par exemple le niveau 1), j'écris quelque chose du type :
echo"<a href='mon lien vers les rubriques de niveau 2'>$rub</a>"....

si je fais onclick dans le lien, je vais changer la couleur de tous les liens $rub du niveau 1. Mais moi, je veux changer la couleur d'un seul $rub (celui qui est cliqué)

j'espère être explicite

vertigo
Invité n'ayant pas de compte PHPfrance

13 juin 2005, 21:27

pour être plus compréhensible, mon problème est de changer la propriété d'une rubrique lorqu'elle est active et de la remettre au statut initial lorsqu'elle est inactive

Cela dit, mon problème a peut etre une solution en php

Eléphant du PHP | 92 Messages

14 juin 2005, 09:33

ok,

est ce que tu as un moyen de faire un lien entre ta page et la rubrique selectionnée, titre de page = libelle du lien par exemple ou autre?

vertigo
Invité n'ayant pas de compte PHPfrance

17 juin 2005, 22:37

oui....disons que lorsque je clique sur un lien (donc une rubrique), je veux afficher une page de texte <a href='menu.php?id=$id&rubrique=$rubrique&mapagedetexte=$mapagedetexte'>$rubrique</a>

où veux-tu en venir ?

Eléphant du PHP | 92 Messages

18 juin 2005, 11:14

tu fais un test de ta rubrique pour changer le form du lien. Comme ceci,

tu place dans ton lien (juste avant de refermer le > de ta balise a
if($rubrique==$_GET['rubrique'])
    print " style='color:#FF0000'";
Ceic est un exemple de style CSS, modifie le à ta guise

vertigo
Invité n'ayant pas de compte PHPfrance

18 juin 2005, 12:47

j'y avais déjà pensé..

Mais j'ai message d'erreur concernant le l'encapsuleur ['rubrique']
ca ne passe pas dans le lien...

Mammouth du PHP | 19672 Messages

18 juin 2005, 13:10

Schéma sommaire : tu as un paramètre "page" de ton url qui indique sur quelle page on est:
la couleur normale d'arrière plan de ton lien est par exemple:
- #000099 pour une page normale inactive;
- #333300 pour la page en cours d'affichage;

Dans tes liens tu peux faire ceci:
<a href="index.php?page=tellepage" style="background-color:<?php echo((isset($_GET['page'])&&$_GET['page']=="tellepage")?"#333300":"#000099"); ?>">Telle page</a>
Comme ça pour chaque lien, selon la page affichée, l'arrière plan du lien de la page en cours est différent.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

vertigo
Invité n'ayant pas de compte PHPfrance

18 juin 2005, 13:30

ben non, désolé.. j'ai toujurs le même message d'erreur :

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE

Mammouth du PHP | 19672 Messages

18 juin 2005, 13:41

Sans voir la ligne de code incriminée, impossible de te corriger sur ce point :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

vertigo
Invité n'ayant pas de compte PHPfrance

18 juin 2005, 13:52

voici ma ligne de code :

<a href=\"menu.php?id=$id&rub=$rub\" style=\"background-color:<?php echo((isset($_GET['rub'])&&$_GET['rub']==$rub)?'#333300':'#000099'); ?>\">$rub</a>

Mammouth du PHP | 19672 Messages

18 juin 2005, 14:04

Soit il en manque un bout, soit je ne saisis pas: ce que tu nous montre à à l'intérieur d'un bloc PHP ou d'un bloc html ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

vertigo
Invité n'ayant pas de compte PHPfrance

18 juin 2005, 14:09

c'est dans un block php :

echo"<ul><li><a href=\"menu.php?....\" style=.........>$rub</a></li></ul>";

Mammouth du PHP | 19672 Messages

18 juin 2005, 14:10

En fait tu as deux possibilités:
-1- tu es dans un bloc HTML : ton lien sera alors ceci:
<a href="menu.php?id=<?php echo($id); ?>&rub=<?php echo($rub); ?>" style="background-color:<?php echo((isset($_GET['rub'])&&$_GET['rub']==$rub)?'#333300':'#000099'); ?>"><?php echo($rub); ?></a>
-2- tu es dans un bloc PHP et ton lien sera alors ceci:
echo("<a href=\"menu.php?id=". $id ."&rub=". $rub ."\" style=\"background-color:". (isset($_GET['rub'])&&$_GET['rub']==$rub)?'#333300':'#000099' ."\">". $rub ."</a>");
Mais ce que tu nous montres est un mélange, curieux salmigondi des deux.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: