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 :

Javascript et affichage des div


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Par défaut Javascript et affichage des div
    Bonjour la communauté,
    j'ai un petit soucis : je veux afficher une DIV selon le choix fait dans un SELECT. Mon problème est que seule la DIV 1 (de label "divid1") s'affiche, les autres ne s'affichant pas.
    Précision : quand je choisi une DIV, les autres doivent s'effacer (ce qui fonctionne).

    Voici un bout de code :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <form>
    <select name="liste" style="width: 500px" onChange="visibilite(this);">
    <option label="1">Article 1</option>
    <option label="2">Article 2</option>
    <option label="3">Article 3</option>
    </select>
    </form>
     
     
    <div style="text-align: justify; display: none;" id="divid1" class="partie">
    bla bla...
    </div>
    <br>
    <div style="text-align: justify; display: none;" id="divid2" class="partie">
    bla bla...
    </div>
    <br>
    <div style="text-align: justify; display: none;" id="divid3" class="partie">
    bla bla...
    </div>
    <br>
     
    <script>
    //*********************************************************
    //Script qui compte le nombre de DIV de la CLASSE "partie"
    //Nombre stocké dans nbDiv
    //*********************************************************
    var mesDiv = document.getElementsByTagName('div');
    var nbDiv = 0;
     
    for(var i=0; i < mesDiv.length; i++)
    {
    if(mesDiv[i].className == "partie")
    {
    nbDiv++;
    }
    }
     
    //***********************************************
    //Fonction qui affiche la DIV sélectionnée
    //param : option ==> option choisie de le SELECT
    //***********************************************
    function visibilite(option)
    {
    var i;
    var targetElement;
    var ID;
    ID = option.selectedIndex + 1;
    //alert(nbDiv);
    targetElement = document.getElementById("divid" + ID) ;
     
    for( i = 1 ; i <= nbDiv ; i++)
    {
    document.getElementById("divid" + i).style.display = "none";
    alert(i);
    }
     
    targetElement.style.display = "block" ;
    alert('end');
     
    }
    </script>
    Merci d'avance

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut Bienvenue!
    Bonjour,

    Vous êtes certains de vos valeurs ?
    Que vaut ID, par exemple ? Euh, d'ailleurs, je vous conseille vivement de changer le nom de cette variable. C'est un mot réservé.

    Ensuite, je ne sais plus si les label des options sont bel et bien leur value.
    Puis il est possible que vous fassiez une concacténation de chaines de caractères plutôt qu'une addition.

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    oulà beaucoup de code pour pas grand chose .

    une option n'a pas de label, mais un value
    ensuite pourquoi faire un compteur de div et dissocier le target ??

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    <script type='text/javascript'>
    //***********************************************
    //Fonction qui affiche la DIV sélectionnée
    //param : option ==> option choisie de le SELECT
    //***********************************************
    function visibilite(option)
    {
    var i=1;
    while(document.getElementById("divid" + i++))
    {
    document.getElementById("divid" + (i-1)).style.display = ((i-1)==option)?"block":"none";
    }
    }
    </script>
    </head>
     
    <body>
    <form>
    <select name="liste" style="width: 500px" onChange="visibilite(this.value);">
    <option value="1">Article 1</option>
    <option value="2">Article 2</option>
    <option value="3">Article 3</option>
    </select>
    </form>
     
     
    <div style="text-align: justify; display: block;" id="divid1" class="partie">
    bla bla... un
    </div>
     
    <div style="text-align: justify; display: none;" id="divid2" class="partie">
    bla bla... deux 
    </div>
    <div style="text-align: justify; display: none;" id="divid3" class="partie">
    bla bla... trois
    </div>
     
     
    </body>
     
    </html>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Par défaut
    D'abord, merci pour votre aide.

    J'ai trouvé le problème : mes DIV n'étaient pas clôturées dans mon code original.
    Tout marche à la perfection.

    Désolé de vous avoir fait perdre votre temps !

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    il faudrait poster la version modifiée de ton code (JS + HTML) pour voir l'évolution ...

    A+

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    heu tu as testé le code ci-dessus ????
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Par défaut
    oui, ton code marche à la perfection, après que j'ai modifié le mien ><
    merci encore

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

Discussions similaires

  1. Probeme d'affichage des div
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 24/06/2009, 15h33
  2. Problème d'affichage des divs (z-index) sous IE
    Par muzele dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 17/12/2008, 16h17
  3. [XHTML] Affichage des div sous IE 7
    Par Blade dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 31/10/2008, 01h55
  4. IE6 et IE7 Problème d'affichage des DIV
    Par BenCarolo dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 18/03/2008, 12h58
  5. Connaitre l'ordre d'affichage des div
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/06/2006, 12h40

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