Problème pour menu avec onglets sous Symfony2

Résolu/Fermé
Pépito - Modifié par Pépito le 9/08/2016 à 11:52
 Pépito - 11 août 2016 à 09:37
Bonjour,

Je vous explique mon problème. J'ai une entité client pour laquelle j'enregistre dans ma base de données, divers clients. Pour chaque client j'ai créé une page avec un menu composé d'onglets. Chaque onglet représente un client différents et sur chaque page de l'onglet nous avons les infos suivantes relatives au client : Infos perso, comptes, société.

Je génère mes onglets avec une boucle PHP {% for %} :

{% for client in clients %}<li role="presentation"><a href="#tab_clients" rel="nofollow" target="_blank" aria-controls="clients" role="tab" data-toggle="tab">{{ client.name }}</a></li>{% endfor %}


J'ai lié toutes mes infos relatives au client à mon entité client, ce qui fait que pour chaque client, seules les infos relatives au client sélectionné s'affichent. En revanche mon problème survient, lorsque je clique sur chaque onglet. En effet, si j'ai plusieurs clients donc plusieurs onglets, seul le premier onglets donc les infos relatives au premier client s'afficheront et les autres onglets ne seront pas pris en compte.

Je souhaiterais donc savoir comment réalisé ça sous Symfony2 avec soit dans mon controller soit dans la vue, une requête pour que pour chaque onglets les infos s'affichent pour chaque client et que la navigation fonctionne donc correctement.

Merci d'avance

A voir également:

2 réponses

UP ! Quelqu'un aurait-il une réponse ? :/
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
9 août 2016 à 16:13
Salut,

Si j'ai bien compris, tu utilises les "togglable tabs" de bootstrap pour afficher les infos des clients dans différents onglets :
https://getbootstrap.com/javascript/#tabs

Si ta boucle fonctionne correctement, ton code ci-dessus doit donc générer les onglets de navigation (<!-- Nav tabs --> dans l'exemple de la doc) permettant d'afficher les contenus des panels (<!-- Tab panes --> dans l'exemple de la doc).
Où est le code responsable de la génération du contenu des panels (une deuxième boucle normalement) ?

Enfin, chaque onglet de navigation doit posséder une balise a dont l'attribut href est égal à l'identifiant du panel correspondant, or pour l'instant tout tes onglets de navigation pointe sur le panel #tab_clients.
Cet attribut devrait être générer dynamiquement avec par exemple l'identifiant de l'utilisateur afin que chaque panel est un identifiant différent.

Bonne journée,
0
Bonjour Pitet,

Effectivement j'utilise bien togglable tabs et cela génère bien le nombre d'onglets en fonction de mon nombre de clients contenus dans ma BDD ! ;) Tout ça s'affiche grâce à une première boucle {% for %}.

Le code responsable de la génération des panels est chacun dans des vues différents que j'inclue dans ma vue principale.

Pour ce qui est des onglets je sais que l’attribut doit avoir un id unique permettant de pointer sur chaque panel. Je connais le problème et tu as juste répété ce que je venais d'expliquer ^^ C'est justement là que j'aimerai avoir la réponse ou alors une piste ! Comment faire pour que l'ID oit unique et que lorsque je clique sur chaque onglet le panel avec les infos correspondantes s’affiche correctement ? :/
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 9/08/2016 à 17:19
Comme proposé, en ajoutant par exemple l'identifiant de l'utilisateur dans l'attribut href (et dans l'attribut id du panel) :
<a href="#tab_clients_{{ client.id }}" rel="nofollow" target="_blank" 
0
Pépito > Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022
9 août 2016 à 17:31
Du coup c'est ce que je venais de tester à l'instant ! ;) Merci beaucoup pour la piste. Il y a encore quelque chose de ne fonctionne pas totalement mas je vais chercher avant de revenir vers toi ;)

Merci !
0
Pépito > Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022
10 août 2016 à 09:32
Re bonjour,

J'ai bien rajouté l'attribut dans l'attribut href (et dans l'attribut id du panel). En revanche, cela ne fonctionne pas comme je le souhaite :/ Cela fonctionne bien pour le premier onglet, en revanche ne marche pas pour les autres onglets qui ont le même format #tab_cluster_{{ cluster.id }}

Est ce que tu aurais une idée de pourquoi pour le deuxième onglet par exemple il ne prend pas en compte ce format que je lui passe ? :/
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
10 août 2016 à 11:11
Commence par vérifier si tu as des erreurs javascript dans la console de développement de ton navigateur. Vérifie également que tu n'es pas d'erreur de syntaxe html.

Peux tu sinon nous montrer le code html généré des onglets de navigation et des panels de contenu ?
0