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 :

Alimenter une liste déroulante dans un formulaire [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 85
    Par défaut Alimenter une liste déroulante dans un formulaire
    Bonjour,

    J'ai une table utilisateur, et une table civilité.
    je lie ma table utilisateur à la table civilité par un champ id_civilite.

    Dans le formulaire utilisateur, comment alimenter une liste déroulante civilité?

    Voilà ma classe UtilisateurForm:
    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
    namespace machin\TestBundle\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilder;
     
    class UtilisateurForm extends AbstractType
    {
        public function buildForm(FormBuilder $builder, array $options)
    	{
    		$builder->add('id_codif_civilite', 'choice', array('label' => 'utilisateur.civilite'));
    		$builder->add('nom', 'text', array('label' => 'utilisateur.nom'));
    		$builder->add('prenom', 'text', array('label' => 'utilisateur.prenom'));
    		$builder->add('login', 'text', array('label' => 'utilisateur.login'));
    		$builder->add('password', 'password', array('label' => 'utilisateur.password'));
    		$builder->add('email', 'email', array('label' => 'utilisateur.email'));
    		$builder->add('id_societe', 'choice', array('label' => 'utilisateur.societe'));
    		$builder->add('super_admin', 'checkbox', array('label' => 'utilisateur.superadmin'));
    		$builder->add('admin', 'checkbox', array('label' => 'utilisateur.admin'));
    	}
     
    	public function getName()
    	{
    		return 'utilisateur';
    	}
    }
    Merci

  2. #2
    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
    Voici un exemple qui ressemble à ce que tu cherches :

    et le code source


  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 85
    Par défaut
    Merci!

    Donc j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $builder->add('id_codif_civilite', 'entity', array(
    			'label' => 'utilisateur.civilite',
    			'class' => 'machin\TestBundle\Entity\bt_codif_civilite',
    			'property' => 'codif'));
    Ca approche, mais j'ai encore quelques soucis:
    ça me génère un liste déroulante, avec les civilités qui vont bien.
    Mais
    1) comment préciser la valeur de retour de la liste déroulante ? (il semble que la valeur retournée soit la valeur qui apparait dans la liste)
    2) ça me génère une liste déroulante. Comment aurait-il fallu faire pour avoir des boutons radio ?

    Merci

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

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 135
    Par défaut
    Va voir par la pour les différents types (checkbox, radio ou select) :
    http://symfony.com/doc/current/refer...es/choice.html

    Sinon pourquoi tu veux spécifier les valeurs de retour? il se débrouille tout seul le formulaire!!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 85
    Par défaut
    Merci de te pencher sur mon cas

    En fait j'ai l'impression que le lien entre ma combo et la valeur retournée n'est pas bon...
    Si je vais en modif sur la fiche d'un utilisateur, j'ai le message d'erreur suivant:
    Expected argument of type "object", "integer" given
    (=> on n'a pas le lien entre l'id_codif_civilité présent dans l'utilisateur et l'objet codif_civilité défini dans le formulaire)

    Si je valide la création d'un utilisateur, j'ai l'erreur:
    Catchable Fatal Error: Object of class ftprods\BugTrackerBundle\Entity\bt_Codif_Civilite could not be converted to string in ...
    (=> pareil, ça me fait penser à un problème de lien)

    Je ne sais pas si ça vous parle...

    Pour faire simple, et si vous connaissez le tuto http://j-place.developpez.com/tutori...avec-symfony2/ ce que je cherche est "simplement" de lier la catégorie à une table (dans le tuto, les catégories sont malheureusement listées en dur)
    Ou si vous connaissez un autre tuto de base abordant ce sujet, ce serait parfait.

    Merci

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

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 135
    Par défaut
    est-ce que tu peux afficher ta classe User?

    Sinon pour moi pour sexe en checkbox je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $builder->add('sexe', 'entity', array(
    				    	    	            'class' 			=> 	'XXX\DefaultBundle\Entity\Code\Sexe',
    				    	    	            'property' 			=> 	'libelle',
    				    	    				'expanded' 			=> 	false,
    				    	    				'multiple'			=>	false,
    				    	    	            'required' 			=> 	true,
    				    						'error_bubbling'	=>	true,
    				    						'empty_value'		=>	false
        								)
        				);
    et j'ai pas de soucis...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/02/2012, 16h59
  2. [AC-2003] Filtrer une liste déroulante dans sous-formulaire
    Par Majeanne dans le forum IHM
    Réponses: 1
    Dernier message: 07/08/2009, 14h20
  3. Réponses: 6
    Dernier message: 23/09/2008, 15h57
  4. [MySQL] Renseigner une liste déroulante dans un formulaire en faisant une jointure.
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 16/10/2006, 10h12
  5. Réponses: 5
    Dernier message: 27/08/2006, 14h18

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