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 :

Changement de class


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut Changement de class
    Bonjour à tous et à toutes,

    J'ai un menu de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ul>
    <li>............</li>
    <li>............</li>
    ..........
    </ul>
    Le probleme est que le changement de class des boutons de menu se fait tres bien pour des pages qui se rechargent entierement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="index.php?page=accueil"  class="active">Accueil</a>
    mais j'ai des pseudo frame et le menu etant dans l'en tête, il faut que je trouve autre chose, alors j'ai essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script language="javascript"> 
    function change_class() { 
    var btn = document.getElementById("btnTest"); 
    btn.className= "active"; 
    } 
    </script>
    et pour le menu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="index.php?page=accueil" value="Test"  title="L'accueil" onclick="change_class()" id="btnTest">Accueil</a>
    Mais ca ne fonctionne pas, je dois faire une boulette dans le code, mais je n'arrive pas a trouver l'erreur... ou peut être que je suis completement à coté de la plaque....

    Merci à vous

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    mais j'ai des pseudo frame
    Qu'est-ce que tu appelles des pseudo frame

    Mais ca ne fonctionne pas
    Qu'est-ce qui ne fonctionne pas ? Ne serait-ce pas que ta classe s'ajoute puis que ta page se recharge ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut
    Voilà peut être un bout de code un peu plus explicite...
    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
                    	<ul class="art-menu">
                    		<li><a href="index.php?page=accueil" value="Test"  onclick="change_class()" id="btnTest">Accueil</a>li>
                    		<li><a href="index.php?page=agenda" value="Test" onclick="change_class()" id="btnTest">Agenda</a></li>
                    		<li><a href="index.php?page=truc" value="Test" onclick="change_class()" id="btnTest">Truc</a></li>
     
                    	</ul>
                    </div>
     
    <?php
     
      // On définit le tableau contenant les pages autorisées
      // ----------------------------------------------------
      $pageOK = array('agenda' => 'agenda.php',
      			'truc' => 'truc.php', 
                                          'accueil' => 'accueil.php');
     
      // On teste que le paramètre d'url existe et qu'il est bien autorisé
      // -----------------------------------------------------------------
      if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
        include($pageOK[$_GET['page']]);   // Nous appelons le contenu central de la page
      } else {
        include('accueil.php');   // Page par défaut quant elle n'existe pas dans le tableau
      }
     
    ?>
    et, quand je dis que ca ne fonctionne pas, c'est que lorsque la page appelée s'affiche exemple accueil.php, le bouton ne change pas comme il le fait quand la page en totalité (sans pseudo frame) s'affiche avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="index.php?page=accueil"  class="active">Accueil</a>
    Citation Envoyé par Bovino Voir le message
    Qu'est-ce qui ne fonctionne pas ? Ne serait-ce pas que ta classe s'ajoute puis que ta page se recharge ?
    ??????

    Pas sur d'avoir été clair....

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ce que tu appelles pseudo frame, c'est juste un système d'include
    Donc quand tu cliques sur un lien, tu appelles ta fonction change_class(), la classe est bien ajoutée, puis tu recharges la page... or dans ta nouvelle page, tu n'indiques nulle part qu'il faut ajouter une classe spécifique à un lien...

    Donc ta fonction JavaScript ne sert strictement à rien et c'est plutôt dans ton script PHP qu'il faut ajouter la classe en fonction du paramètre reçu.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut
    Merci Bovino pour ta réponse

    J'ai beaucoup de mal avec le JavaScript

    Mais ce que je ne comprend pas c'est que je doive passer par l'include...

    Le menu se trouve dans le header qui sert pour toutes les pages, donc, en principe la classe du menu est toujours déclarée .... non ?

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <li><a href="index.php?page=accueil" value="Test"  onclick="change_class()" id="btnTest">Accueil</a>li>
    <li><a href="index.php?page=agenda" value="Test" onclick="change_class()" id="btnTest">Agenda</a></li>
    <li><a href="index.php?page=truc" value="Test" onclick="change_class()" id="btnTest">Truc</a></li>
    C'est bien index.php qui est appelée à chaque fois
    Donc à chaque clic, tu recharges ta page index.php, ce qui explique que les changements faits en JavaScript disparaissent...
    Comment crois-tu que ça pourrait fonctionner autrement ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut
    Merci encore à toi Bovino...

    J'ai abandonné le JS et je me suis servi du PHP pour envoyer les variables de mon menu... et c'est toi qui m'a donné cette solution...

    Mais il va falloir que je travaille davantage le JavaScript...

    Bonne journée

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    A titre d'entrainement (car à mon sens ce n'est pas nécessairement adapté dans ton cas), tu peux essayer de faire le même système mais en récupérant le contenu via AJAX plutôt que par include et en modifiant le className comme tu le faisais
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. Cookie et changement de classe css.
    Par luxmen dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/11/2007, 23h02
  2. [Compatibilité] Signifier un changement à la classe appelante
    Par SaumonAgile dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/07/2007, 21h52
  3. Changement de classe d'une variable
    Par lebigboss dans le forum Langage
    Réponses: 1
    Dernier message: 15/05/2007, 16h51
  4. rechargement contexte lors d'un changement de classe
    Par n00noors dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 10/08/2006, 17h21
  5. [Js] changement de classe css qui annule le lien
    Par michaelbob dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/05/2006, 15h07

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