Page 1 sur 2

lien sélectionné

Posté : 12 juin 2005, 14:14
par vertigo
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

Posté : 13 juin 2005, 11:09
par Invité
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.

Posté : 13 juin 2005, 20:45
par vertigo
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

Posté : 13 juin 2005, 21:27
par vertigo
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

Posté : 14 juin 2005, 09:33
par robined
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?

Posté : 17 juin 2005, 22:37
par vertigo
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 ?

Posté : 18 juin 2005, 11:14
par robined
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

Posté : 18 juin 2005, 12:47
par vertigo
j'y avais déjà pensé..

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

Posté : 18 juin 2005, 13:10
par Cyrano
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.

Posté : 18 juin 2005, 13:30
par vertigo
ben non, désolé.. j'ai toujurs le même message d'erreur :

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE

Posté : 18 juin 2005, 13:41
par Cyrano
Sans voir la ligne de code incriminée, impossible de te corriger sur ce point :-k

Posté : 18 juin 2005, 13:52
par vertigo
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>

Posté : 18 juin 2005, 14:04
par Cyrano
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 ?

Posté : 18 juin 2005, 14:09
par vertigo
c'est dans un block php :

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

Posté : 18 juin 2005, 14:10
par Cyrano
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.