IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

style sur un lien


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut style sur un lien
    Bonjour,
    j'essaie d'afficher un lien en blanc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset ($_GET['id_article'])) {
    $lien=$_GET['id_article'];
    	echo '<script>document.getElementById(\'actif'.$lien.'\').style.background="white";</script>';
    }
    echo '<ul><li id="actif'.$lien.'">ssss</li></ul>';
    la balise <li> m'affiche, mais j'ai surement un problème parceque le style n'est pas modifier ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>document.getElementById('actif9').style.background="white";</script><ul><li id="actif9">ssss</li></ul>

  2. #2
    Membre confirmé Avatar de gKsam
    Profil pro
    Inscrit en
    Août 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 166
    Par défaut et comme ça
    Des fois c'est tout bête et on y pense pas.

    Quand une page est chargée, les script sont exécuté à la volée. Donc, dans ta ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>document.getElementById('actif9').style.background="white";</script><ul><li id="actif9">ssss</li></ul>
    Cela change la couleur (ici de fond) tu peux aussi utiliser backgroundColor. ton li n'a pas encore été créée. Donc il faut tout bêtement inverser les choses et hop cela marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ul><li id="actif9">ssss</li></ul><script>document.getElementById('actif9').style.background="white";</script>

  3. #3
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut
    oui à la fin sa fonctionne l'ennui c'est que ma façon de faire ne fonctionne plus sur une boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     function menu($rubrique) {
     		$req="SELECT id_article, description, page  FROM pages where rubrique='$rubrique'";
    		$result = mysql_query($req);
    		if (!$result)
    		return false;
    		if (isset ($_GET['id_article']))
    			$lien=$_GET['id_article'];
    		while($affiche = mysql_fetch_assoc($result)){
    		echo '<li id="actif'.$lien.'">';
    		echo '<a href="dossier.php?id_article='.$affiche['id_article'].'"';?> onMouseOver="return overlib('<?php echo addslashes($affiche['description']);?>', FGCOLOR, '#FC7A00', BGCOLOR, '#FFAE5F', BORDER, 1, CAPTIONFONT, 'arial', TEXTFONT, 'arial', TEXTSIZE, 0.7)" onmouseout="return nd();"><?php echo $affiche['page'];?>&nbsp;&raquo;</a>
    		</li>
    		<?php
                    }
                    ?>
    				<script>document.getElementById('actif<?php echo $lien;?>').style.Color="yellow";</script>
    		<?php
     }
    Donc cette fois tous les liens ont le même id, ce qui est normel, mais y a t'il une métode propre de faire ce que je veux faire ?
    Merci

  4. #4
    Membre confirmé Avatar de gKsam
    Profil pro
    Inscrit en
    Août 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 166
    Par défaut Ha ben oui mais là...
    Pour moi le id est un identifiant. Donc il devrai être unique. D'ailleurs, si tu regarde la doc de getElementById() ici

    Tu verras que getElementById ne renvoi qu'un seul élément. (je pense le premier)

    Quand on veut faire de la mise en forme d'éléments dans un page. Le mieux c'est penser CSS et class.

    Donc si tu mets la même class à tous tes <li> et que tu modifies le fichier css qui va avec le tour sera joué et en plus tu simplifieras ton code.

    dans ton fichier HTML (ici dans tes echo PHP)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ul><li class="nomClass">ssss</li></ul>
    Dans le fichier CSS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    li.nomClass {
     
       background : white;
    }

  5. #5
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut
    j'ai fait autrement :
    Mais sa fonctionne toujours pas !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     function menu($rubrique) {
     		$req="SELECT id_article, description, page  FROM pages where rubrique='$rubrique'";
    		$result = mysql_query($req);
    		if (!$result)
    		return false;				
    		while($affiche = mysql_fetch_assoc($result)){
    		if (isset ($_GET['id_article']))
    			$page_courante=$_GET['id_article'];
    		if ($page_courante == $affiche['id_article'])
    			$class= "menu_actif";
    		echo '<li class='.$class.'>';
    		echo '<a href="dossier.php?id_article='.$affiche['id_article'].'"';?> onMouseOver="return overlib('<?php echo addslashes($affiche['description']);?>', FGCOLOR, '#FC7A00', BGCOLOR, '#FFAE5F', BORDER, 1, CAPTIONFONT, 'arial', TEXTFONT, 'arial', TEXTSIZE, 0.7)" onmouseout="return nd();"><?php echo $affiche['page'];?>&nbsp;<span class="crochet_lien">&raquo;</span></a>
    		</li>
    		<?php	
    		}
     }

  6. #6
    Membre confirmé Avatar de gKsam
    Profil pro
    Inscrit en
    Août 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 166
    Par défaut demande des sources HTML
    Peux-tu poster bout de code HTML de ce ton code PHP fait. Et à quoi sert la fonction overlib() ?

  7. #7
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    function menu($rubrique) {
             $req="SELECT id_article, description, page  FROM pages where rubrique='$rubrique'";
            $result = mysql_query($req);
            if (!$result)
            return false;                
            while($affiche = mysql_fetch_assoc($result)){
            if (isset ($_GET['id_article']))
                $page_courante=$_GET['id_article'];
            if ($page_courante == $affiche['id_article'])
                $class= "menu_actif";
            echo '<li class='.$class.'>';
            echo '<a href="dossier.php?id_article='.$affiche['id_article'].'"';?> onMouseOver="return overlib('<?php echo addslashes($affiche['description']);?>', FGCOLOR, '#FC7A00', BGCOLOR, '#FFAE5F', BORDER, 1, CAPTIONFONT, 'arial', TEXTFONT, 'arial', TEXTSIZE, 0.7)" onmouseout="return nd();"><?php echo $affiche['page'];?>&nbsp;<b class="crochet_lien">&raquo;</b></a>
            </li>
            <?php    
            }
     }
    html renvoyer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                   <ul><li class=""><a href="dossier.php?id_article=4" onMouseOver="return overlib('bla bla bla', FGCOLOR, '#FC7A00', BGCOLOR, '#FFAE5F', BORDER, 1, CAPTIONFONT, 'arial', TEXTFONT, 'arial', TEXTSIZE, 0.7)" onmouseout="return nd();">honoraires&nbsp;<b class="crochet_lien">&raquo;</b></a>
     
          </li>
          <li class=""><a href="dossier.php?id_article=9" onMouseOver="return overlib('bla bla bla', FGCOLOR, '#FC7A00', BGCOLOR, '#FFAE5F', BORDER, 1, CAPTIONFONT, 'arial', TEXTFONT, 'arial', TEXTSIZE, 0.7)" onmouseout="return nd();">charte&nbsp;<b class="crochet_lien">&raquo;</b></a>
          </li>
          <li class="menu_actif"><a href="dossier.php?id_article=12" onMouseOver="return overlib('bla bla bla', FGCOLOR, '#FC7A00', BGCOLOR, '#FFAE5F', BORDER, 1, CAPTIONFONT, 'arial', TEXTFONT, 'arial', TEXTSIZE, 0.7)" onmouseout="return nd();"> notre méthode&nbsp;<b class="crochet_lien">&raquo;</b></a>
          </li>
          <li class="menu_actif"><a href="dossier.php?id_article=13" onMouseOver="return overlib('bla bla bla', FGCOLOR, '#FC7A00', BGCOLOR, '#FFAE5F', BORDER, 1, CAPTIONFONT, 'arial', TEXTFONT, 'arial', TEXTSIZE, 0.7)" onmouseout="return nd();"> espace client&nbsp;<b class="crochet_lien">&raquo;</b></a>
     
          </li>
          </ul>
    En faite à partir du moment ou il trouve la variable dans la boucle, il affiche la variable de la .class dans tout le reste se qui est logique !
    Rolling Eyes
    C'est la raison pour laquelle j'ai plusieurs .class dans mon menu
    ps overlib c'est une librairie de popup

  8. #8
    Membre confirmé Avatar de gKsam
    Profil pro
    Inscrit en
    Août 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 166
    Par défaut C'est ça que tu veux?
    A copié dans une page HTML vide (enfin html, head, body) le minimum quoi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <style type="text/css">
    body {
     
    	background-color: #EEEEEE;
    }
     
    li.menu_actif {
     
    	background: white;
    }
    </style>
     
    <ul>
    	<li>
    		<a href="dossier.php?id_article=4">honoraires&nbsp;<b>&raquo;</b></a>
        </li>
        <li>
        	<a href="dossier.php?id_article=9">charte&nbsp;<b>&raquo;</b></a>
        </li>
        <li class="menu_actif">
        	<a href="dossier.php?id_article=12">notre méthode&nbsp;<b>&raquo;</b></a>
        </li>
        <li class="menu_actif">
        	<a href="dossier.php?id_article=13">espace client&nbsp;<b>&raquo;</b></a>
        </li>
    </ul>
    c'est juste pour savoir si c'est ce résultat la que tu veux.

    Personnellement, avant de passer au code PHP ou autre, je fait mon modèle en HTML et ensuite je l'intègre dans le code une fois que cela fonctionne comme je veux.

  9. #9
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut
    d'ailleurs mon css débloque et moi je pousse un ouf de déséspoir.

  10. #10
    Membre confirmé Avatar de gKsam
    Profil pro
    Inscrit en
    Août 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 166
    Par défaut quand le css débloque
    quand le css ou le js débloque. Vides le cache du navigateur. Des fois ça marche.

    Quand c'est comme ça, ce que je fait c'est que je refais ce que je voulais mais sans le code PHP. juste le HTML, CSS. Ensuite j'intègre le javascript et à la fin je fait généré le tout par PHP.

    C'est un peu plus long mais au moins je ne debug pas du code javascript dans des echo PHP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser des styles différents en fonction du clic sur un lien
    Par tahiiri dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 07/06/2009, 16h02
  2. style sur un lien et une image
    Par adamo901 dans le forum Mise en page CSS
    Réponses: 18
    Dernier message: 29/08/2008, 18h27
  3. confirmation sur un lien
    Par AlphonseBrown dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/01/2005, 18h49
  4. question sur les liens images
    Par geoffreykill dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 21/01/2005, 14h37
  5. [JSP][Javascript] click droit sur un lien
    Par Stessy dans le forum Servlets/JSP
    Réponses: 22
    Dernier message: 24/09/2004, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo