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 :

Formulaire personnalisé [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 30
    Par défaut Formulaire personnalisé
    Bonjour,

    J'ai deux entités comme suit:

    Pratiquant (nom, prenom): OneToMany -> souscriptions

    Souscription (nbreDeMois) : (ManyToOne ->pratiquant)

    J'aimerais créé un formulaire qui va charger la liste des pratiquants.
    Et pour chaque pratiquant, je vais pouvoir choisir le nombre de mois de souscription (nbreDeMois).
    Avec une case à cocher devant chaque pratiquant pour sélectionner les pratiquants prêts pour la souscription. Et enfin un bouton pour tout enregistrer.


    J'ai commencé par créer un formulaire en ajoutant un champs de collection (souscriptions).
    Mais je me demande s'il faut créer une nouvelle entité pour ce formulaire.
    A vrai dire je manque d'idées.

    Merci de m'éclairer un peu avec quelques pistes si possible.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    je crois que tu as juste besoin d'un formulaire ,qui aura parmi ses colonnes un array associatif des souscriptions (récupérer à part ) .
    Tout le formulaire sera affiché dans une boucle for (pour les pratiquant) coté twig .
    j'ai compris que tu veux un seul bouton submit et c'est faisable.
    Partage-nous ton formBuilder d'abord

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 72
    Par défaut
    Je t'invite à regarder dans une autre direction à l'aide de ce Bundle :
    https://github.com/stwe/DatatablesBundle

    Il te permet de créer à partir d'entités des tableaux de données auxquels tu peux ajouter une case à cocher de multi-selection et des actions. D'après ce que tu décrit ça pourrait facilement s'adapter à ton problème il me semble.

    En terme de rendu final ça sera peut-etre plus agréable à utiliser qu'un formulaire classique.
    Mais c'est sur que c'est une autre piste et que peut-etre tu jugera que ça ne te convient pas ^^

  4. #4
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 30
    Par défaut
    Merci à vous tous.
    Li'dée de mehrezlabidimehrez m'interesse d'abord.
    Voici mon formulaire:
    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
    <?php
     
    namespace Jack\AikidoBundle\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\OptionsResolver\OptionsResolverInterface;
     
     
    class PratSousType extends AbstractType
    {
        /**
         * @param FormBuilderInterface $builder
         * @param array $options
         */
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
     
            $builder
                ->add('souscriptions', 'collection', array('type'=> new SouscriptionType(),
                    'allow_add'=>true,
                    'allow_delete' =>true
                )) 
     
            ;
        }
     
        /**
         * @param OptionsResolverInterface $resolver
         */
        public function setDefaultOptions(OptionsResolverInterface $resolver)
        {
            $resolver->setDefaults(array(
     
            ));
     
     
        }
     
        /**
         * @return string
         */
        public function getName()
        {
            return 'prat_sous';
        }
    }
    Voilà là où j'ai commencé.

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    Tu peux tester et construire dans ton controlleur de pratiquant a partir de ça .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     $formBuilder = $this->get('form.factory')->createBuilder('form', $pratiquant);
            $formBuilder
     
                    ->add('souscription', 'choice', array(
                       'choices' =>  $array_souscription_nbreDeMois  ,                                   
                        'expanded' => false,
                        'multiple' => false
                    ));
    dans l'array tu doit mettre les valeurs a partir des quelles tu va choisir dans ta liste .
    Pour recuperer ce que tu as choisi avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      $souscription =  $form["souscription"]->getData(); 
    var_dump($souscription);exit;

  6. #6
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 30
    Par défaut
    Actuellement, mon formulaire enregistre la souscription d'un seul pratiquant(membre) à la fois:
    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
    <?php
     
    namespace Jack\AikidoBundle\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\OptionsResolver\OptionsResolverInterface;
     
    class SubscriptionType extends AbstractType
    {
            /**
         * @param FormBuilderInterface $builder
         * @param array $options
         */
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add('date')
                ->add('nbMonth')
     
                ->add('member', 'entity', array(
                    'class' => 'JackAikidoBundle:Member',
                    'property' => 'name',
                    'multiple' => true,
                    'expanded' => true,
                ))                 
            ;
        }
     
        /**
         * @param OptionsResolverInterface $resolver
         */
        public function setDefaultOptions(OptionsResolverInterface $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => 'Jack\AikidoBundle\Entity\Subscription'
            ));
        }
     
        /**
         * @return string
         */
        public function getName()
        {
            return 'subscription';
        }
    }
    Es-ce qu'il est possible d'enregistrer à une date donnée, la souscription de tous les pratiquants(membres) d'un seul coup ?

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

Discussions similaires

  1. [Outlook 2003] Parcourir un formulaire personnalisé en VBA
    Par Rikikix dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 02/10/2008, 14h42
  2. [wss] Master page et Formulaire Personnalisé
    Par zghidi dans le forum SharePoint
    Réponses: 2
    Dernier message: 04/01/2008, 16h45
  3. formulaire personnalisé plus sympa
    Par yadla dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/08/2007, 17h45
  4. Créer un formulaire personnalisé
    Par dddodo dans le forum IHM
    Réponses: 19
    Dernier message: 08/01/2007, 13h17
  5. [VB.net 2005] Formulaire personnalisé
    Par PoZZyX dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/05/2006, 16h57

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