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 :

[form]select hiérarchique ou avec optgroup


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 26
    Par défaut [form]select hiérarchique ou avec optgroup
    Bonjour,

    Est-il possible de faire un champ entity hiérarchique ou avec optgroup ?

    Exemple : J'ai une Entité Catégorie.
    Une Catégorie peut être une sous-catégorie d'une catégorie.

    J'aimerai donc dans un formulaire, avoir un champ catégorie de type select présenté de façon hiérarchique ou avec groupe, de telle manière que la catégorie mère soit suivie de ses sous-catégories.

    Catégorie 1
    • catégorie 1.1
    • catégorie 1.2
    • ...

    Catégorie 2
    • ...


    Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    developpeur
    Inscrit en
    Février 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : developpeur

    Informations forums :
    Inscription : Février 2010
    Messages : 54
    Par défaut
    Bonjour,

    Il t'est possible de faire une relation OneToMany sur ton entité Categorie avec comme entité cible : Categorie.

    En spécifiant multiple -> true et expanded -> false tu obtiens un champ type select. Au besoin tu peux rajouter une requête DQL pour Filtrer les instances de Categorie à afficher.

    Je ne sais pas si j'ai répondu à ta question...
    bonne soirée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            $builder->add('categorie', 'entity', array(
                    'class'     => '...\\Entity\\Categorie',
                    'multiple'  => true, 
                    'expanded'  => false,
                    'property'  => 'titre',
                    'query_builder' => function(\Doctrine\ORM\EntityRepository $er) {
                        return $er->createQueryBuilder('categorie')
                                ->where('categorie.profondeur = 1');
                    }
            ));

  3. #3
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 26
    Par défaut
    Merci pour ta réponse.

    Mais au niveau de la relation, c'est ce que j'ai.
    En fait, mon souci est l'affichage du select.

    Je voudrais l'afficher de la manière suivante ou de manière similaire à ce qui suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <select>
    <optgroup label=catégorie mère 1>
    <option>catégorie fille 1</option>
    <option>...</option>
    </optgroup> 
    <optgroup label=...>
    </optgroup>
    ...
    </select>
    En fait, il aurait été pratique de faire une requête pour obtenir les catégories mères et de pouvoir faire une boucle afin d'afficher les catégories filles.

    Mais est-ce possible ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Par défaut
    Mois aussi je cherche une réponse, et je pense que la seule solution, jusqu'à maintenant est de passer par un tableau à deux dimensions.

    Tu peux voir ça aussi :
    https://github.com/symfony/symfony/issues/1735

  5. #5
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 26
    Par défaut
    En effet, le tableau à 2 dimensions donne le résultat souhaité.
    Mais ma nouvelle question est comment passer ce tableau à mon formulaire?

    Je sais générer mon tableau du côté controller mais je ne sais pas le passer à mon formulaire.

    ou alors, Y a-t-il moyen de récupérer l'entitymanager dans mon formulaire ?

    Pour l'instant mon idée est de placer une variable dans la classe de mon formulaire et de créer une fonction setVariable afin de lui placer mon tableau.
    Mais y a-t-il plus simple ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Par défaut
    Mais y a-t-il plus simple ?
    http://symfony.com/doc/current/book/...g-form-classes


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
        $task = // ...
        $form = $this->createForm(new TaskType(), $task, array('tab' => $tab));
    ..
    et dans le TaskType :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
    print_r($options['tab']);
    ...
        public function getDefaultOptions(array $options)
        {
            return array(
                'tab' => array(),
            );
        }
    ou alors, Y a-t-il moyen de récupérer l'entitymanager dans mon formulaire ?
    Oui, je pense qu'il y a une possibilité de la récupérer dans le fom.

Discussions similaires

  1. jqTransform et les balises select avec optgroup
    Par betadev dans le forum jQuery
    Réponses: 0
    Dernier message: 23/05/2012, 17h18
  2. Insert avec select sur table avec Trigger d'insertion
    Par bran_noz dans le forum Développement
    Réponses: 5
    Dernier message: 23/12/2005, 14h38
  3. Réponses: 3
    Dernier message: 30/06/2005, 12h50
  4. [xhtml][css] bouton du form ne marche pas avec IE6
    Par chinouk dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 14/06/2005, 14h00
  5. [FORMS] Utilisation de DLL avec ORA_FFI
    Par Nounoursonne dans le forum Forms
    Réponses: 2
    Dernier message: 07/12/2004, 09h19

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