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

Symfony PHP Discussion :

[Twitter Bootstrap]Liste accordéon dans une boucle [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Etudiante BTS SIO
    Inscrit en
    Juin 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiante BTS SIO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 26
    Points : 19
    Points
    19
    Par défaut [Twitter Bootstrap]Liste accordéon dans une boucle
    Bonjour, aujourd'hui, je souhaiterai faire une liste accordéon pour mes tableaux. Auparavant, j'avais effectué une boucle qui m'affichait 1 tableau par film (titre, date, acquisition, synopsis, nombre de cd etc...) mais ça me prenait une place folle et une scroll bar immense !!!

    J'aimerai donc créer cette liste:

    $titre [clique]

    ->Tableau

    $titre [clique]

    ->Tableau

    $titre [clique]

    ->Tableau

    $titre [clique]

    ->Tableau

    ...

    J'ai donc, dans ma vue fait :

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    {% block body %}
    <div class="span6">
        <div class="page-header">
        	<h1>Liste des Films </h1>
        </div>
    </div>
     
    <div class="row-fluide">
    <div class="span5 offset1 bs-docs-sidebar">  	
     
     
     
    {% for Film in film %}
     
    <div class="accordion" id="accordion2">
      <div class="accordion-group">
        <div class="accordion-heading">
          <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapse{{nb}}">
    			Film     
    		</a>
        </div>
        <div id="collapse{{nb}}" class="accordion-body collapse in">
          <div class="accordion-inner">
     
     
          <table class="table table-striped"
                	<tr>
                		<td><b>Titre : </b></td>
                   		<td>{{ Film.titre }}</td>
                   	</tr>
     
                   	<tr> 
                   		<td><b>Date acquisition :</b> </td>           		
                    	<td>{{ Film.dateAcquisition|date }}</td> 
                    </tr>
     
                    <tr>
                   		<td><b>Année production : </b></td> 
                    	<td>{{ Film.anneeProduction }}</td>
                    </tr>
     
                    <tr>
                        <td><b>Date de sortie : </b></td>
                    	<td>{{ Film.dateSortie|date }}</td>
                   	</tr> 
     
                   	<tr>
                   		<td><b>Durée du film : </b></td>
    				    <td>{{ Film.duree }}</td>
    				</tr>
     
    				<tr> 
    					<td><b>Langue : </b></td>
                    	<td>{{ Film.langueId }}</td>
                    </tr>
     
                    <tr>
                    	<td><b>Genre ID : </b></td> 
                    	<td>{{ Film.genreId }}</td> 
                    </tr>
     
                    <tr>
                    	<td><b>Saga ID : </b></td>
                    	<td>{{ Film.sagaId }}</td>
                    </tr>
     
                    <tr> 
                    	<td><b>Acteur ID : </b></td>
                    	<td>{{ Film.acteurId }}</td>
                    </tr>
     
                    <tr>
                    	<td><b>Synopsis : </b></td>
                    	<td>{{ Film.synopsis }}</td>
                    </tr>
     
                    <tr>
                    	<td><b>Support ID : </b></td> 
                    	<td>{{ Film.supportId }}</td>
                    </tr>
     
                    <tr>
                    	<td><b>Nombre de disque : </b></td> 
                    	<td>{{ Film.nbDisque }}</td>
                    </tr>
     
                    <tr>
                    	<td><b>Emprunté : </b></td> 
                    	<td>{{ Film.emprunte }}</td>
                    </tr>
     
                    <tr>
                    	<td><b>Adherent ID : </b> </td>
                    	<td>{{ Film.adherentId }}</td>
                    </tr>  
     
                    <tr>
                    	<td><b>Observations : </b></td> 
                    	<td>{{ Film.observations }}</td>
                    </tr>
     
                    <tr>  
                    	<td><b>Vignettes : </b></td>
                    	<td>{{ Film.vignettes }}</td>
                    </tr>
     
                    <tr> 
                    	<td><b>Affiche : </b></td> 
                  		<td>{{ Film.affiche }}</td>
                  	</tr>
     
                  	<tr>
                  		<td><b>Video : </b></td> 
                    	<td>{{ Film.video }}</td>
                    </tr>
     
                    <tr> 
                    	<td><b>Archiver : </b></td> 
                    	<td>{{ Film.archiver }}</td> <br/> <br/><br/>
                </tr>
     
                            </table>
     
          </div>
        </div>
      </div>
    </div>
     
    {% endfor %}
     
     
     
     
     
     
    {% endblock %}
    Dans mon controlleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public function ListeAction()
    	{	
    		$nb=0;
    		$films = $this->getDoctrine()
    		->getRepository('AscavideoBundle:film')
    		->findall();
     
    		return $this->render("AscavideoBundle:GestionFilm:liste.html.twig", array(
    				'film' => $films
    		));
     
    	}
    Et j'obtiens l'erreur :

    Variable "nb" does not exist in AscavideoBundle:GestionFilm:liste.html.twig at line 25
    Auriez-vous une petite idée?

    Merci

  2. #2
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Tu n'a pas passé la variable nb dans ton template.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    return $this->render("AscavideoBundle:GestionFilm:liste.html.twig", array(
    	'film' => $films,
    	'nb' => $nb
    ));

  3. #3
    Membre à l'essai
    Femme Profil pro
    Etudiante BTS SIO
    Inscrit en
    Juin 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiante BTS SIO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Je revois ma liste mais les accordéons sont déployés :/

  4. #4
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Tu déclares autant d'accordéons que de passages dans ta boucle ; déjà pour commencer il ne faut en déclarer qu'un seul et boucler sur les accordion-group.

    Il faut que tu sortes cette ligne de ta boucle en la mettant au dessus du départ de ton for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="accordion" id="accordion2">
    et par la même occasion la div fermante après la fin de la boucle.

    Ensuite la classe "in" (ligne 22) permet d'avoir un panneau ouvert, là en l’occurrence elle est présente dans la boucle donc pour chaque élément : raison pour laquelle ton accordéon est entièrement ouvert. Il te suffit de faire une condition sur l'inclusion de cette classe pour garder ouverts que ceux que tu désires garder ouverts. Ou bien supprimer totalement la classe in pour que ton accordéon soit complètement fermé.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Etudiante BTS SIO
    Inscrit en
    Juin 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiante BTS SIO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Si j'enleve la ligne ça me fait quelque chose de très étrange pour le coups

    Si je met juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="collapse{{nb}}" >
    ça ne change rien

  6. #6
    Membre à l'essai
    Femme Profil pro
    Etudiante BTS SIO
    Inscrit en
    Juin 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiante BTS SIO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="collapse{{nb}}" class="accordion-body collapse">
    mes panneaux sont replier mais quand je clique, je n'ai rien qui s'ouvre :/

  7. #7
    Membre à l'essai
    Femme Profil pro
    Etudiante BTS SIO
    Inscrit en
    Juin 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiante BTS SIO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Uu je suis perdue

  8. #8
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Incrémenter la variable nb à la fin de la boucle ça pourrait être utile pour avoir des id différents ... mmh 'voyez

  9. #9
    Membre à l'essai
    Femme Profil pro
    Etudiante BTS SIO
    Inscrit en
    Juin 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiante BTS SIO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Mes collapse s'incrémentent

  10. #10
    Membre à l'essai
    Femme Profil pro
    Etudiante BTS SIO
    Inscrit en
    Juin 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiante BTS SIO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Mais ils ne s'ouvrent toujours pas

  11. #11
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Il manque le chevron fermant à la fin de ta balise ouvrante de table.

  12. #12
    Membre à l'essai
    Femme Profil pro
    Etudiante BTS SIO
    Inscrit en
    Juin 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiante BTS SIO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Cela ne change rien :/ ( j'ai corrigé Merci )

  13. #13
    Membre à l'essai
    Femme Profil pro
    Etudiante BTS SIO
    Inscrit en
    Juin 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiante BTS SIO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    C'est résolu. Les chemin vers le JS était foireux

  14. #14
    Nouveau membre du Club
    Inscrit en
    Juin 2013
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Go installer Firebug sur ton navigateur.
    Tu l'aurais vu de suite.

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

Discussions similaires

  1. liste indirecte dans une boucle VBA
    Par visa76 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/06/2013, 21h51
  2. Réponses: 0
    Dernier message: 02/11/2011, 15h41
  3. Modifier une map/liste dans une boucle
    Par Invité dans le forum Groovy
    Réponses: 1
    Dernier message: 31/10/2011, 08h55
  4. Pb de modification de liste dans une boucle for
    Par schnito dans le forum Général Python
    Réponses: 5
    Dernier message: 20/04/2007, 10h27
  5. Réponses: 2
    Dernier message: 28/08/2006, 18h17

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