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 :

Accordeon avec une boucle foreach JSTL et traitement JS


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de Mr.Robot12
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 189
    Points : 81
    Points
    81
    Par défaut Accordeon avec une boucle foreach JSTL et traitement JS
    Bonjour,

    je suis en train de faire une appli web en java et dans la page JSP je parcours une liste avec la boucle foreach pour alimenter un accordeon :

    Code HTML : 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
     
                <div class="col-md-8">
                    <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
                        <div class="panel-left col-md-6">
                            <c:forEach items="${ lesBatchs }" var="b" varStatus="id">
                                <c:if test="${ id.count % 2 != 0 }">
                                    <div class="panel panel-default">
                                        <div class="panel-heading" role="tab" id="heading${ b.nomBatch }">
                                            <h4 class="panel-title">
                                                <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse${ b.nomBatch }"
                                                    aria-expanded="false" aria-controls="collapse${ b.nomBatch }" onclick="hideCollapse()">${ b.nomBatch }
                                                </a>
                                            </h4>
                                        </div>
                                        <div id="collapse${ b.nomBatch }" class="panel-collapse collapse" role="tabpanel"
                                            aria-labelledby="heading${ b.nomBatch }">
                                            <div class="panel-body">
                                                <strong>Batch : </strong>${ b.nomBatch }<br> <strong>Heure de début : </strong>${ b.heureDebut }<br>
                                                <strong>Heure de fin : </strong>${ b.heureFin }
                                            </div>
                                        </div>
                                    </div>
                                </c:if>
                            </c:forEach>
                        </div>
     
                        <div class="panel-left col-md-6">
                            <c:forEach items="${ lesBatchs }" var="b" varStatus="id">
                                <c:if test="${ id.count % 2 == 0 }">
                                    <div class="panel panel-default">
                                        <div class="panel-heading" role="tab" id="heading${ b.nomBatch }">
                                            <h4 class="panel-title">
                                                <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse${ b.nomBatch }"
                                                    aria-expanded="false" aria-controls="collapse${ b.nomBatch }" onclick="hideCollapse()">${ b.nomBatch } </a>
                                            </h4>
                                        </div>
                                        <div id="collapse${ b.nomBatch }" class="panel-collapse collapse" role="tabpanel"
                                            aria-labelledby="heading${ b.nomBatch }">
                                            <div class="panel-body">
                                                <strong>Batch : </strong>${ b.nomBatch }<br> <strong>Heure de début : </strong>${ b.heureDebut }<br>
                                                <strong>Heure de fin : </strong>${ b.heureFin }
                                            </div>
                                        </div>
                                    </div>
                                </c:if>
                            </c:forEach>
                        </div>
                    </div>
                </div>

    j'ai deux soucis :
    La première c'est que si je ne met pas onclick="hideCollapse()" dans chaque balise <a> l'accordeon ne se cache pas quand je clique sur un autre. j'aimerai que cela marche sans que je mette le onclick : c'est-à-dire directement en JS.
    voici la petite fonction qui cache l'accordeon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function hideCollapse() {
    	$('#accordion .in').collapse('hide');
    }
    L'autre souci est que j'aimerai récupérer le b.nomBatch sur lequel j'ai cliqué. par exemple si je clique sur "ADHESION" j'aimerai récupérer "ADHESION" dans mon JS.

    je vous mets le rendu de ma page JSP pour que ce soit plus simple à comprendre :

    Nom : Capture.PNG
Affichages : 270
Taille : 18,9 Ko

    SVP aidez moi

  2. #2
    Membre régulier Avatar de Mr.Robot12
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 189
    Points : 81
    Points
    81
    Par défaut
    j'ai trouvé la solution en faite.
    mon JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $(window).load(function () {
    	$('a[data-toggle="collapse"]').click(function(){
    		$('#accordion .in').collapse('hide');
    		console.log($(this).attr('href')); // Here you will get the targeted ID
    		var targetID = $(this).attr('href');
    	});
    });
    et dans la JSP j'enlève le onClick

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

Discussions similaires

  1. verifier formulaire avec une boucle "foreach"
    Par sardo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/03/2007, 12h15
  2. : remplir des zones de texte avec une boucle For
    Par Haro_GSD dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 21h23
  3. Comment initialiser une liste de composants avec une boucle ?
    Par EricSid dans le forum Composants VCL
    Réponses: 5
    Dernier message: 06/04/2005, 18h46
  4. Réponses: 1
    Dernier message: 30/03/2005, 15h50
  5. Generer des noms de variables avec une boucle
    Par moutanakid dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/07/2004, 17h45

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