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 :

Récuperer valeur selectionnée d'une liste déroulante [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut Récuperer valeur selectionnée d'une liste déroulante
    Bonjour, j'ai une liste déroulante (entité) dans ma form et je veux récuperer la valeur selectionné de la liste pour l'envoyer vers la fonction de recherche byDepot() quelq'un peut m'aider svp : voila le code d mon controller:

    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
    public function entrepotAction() {
     
        $entity = new Depot();
         $form = $this->createForm(new DepotType, $entity);
        if ($this->get('request')->getMethod() == 'POST')
        {
            $form->bind($this->get('request'));
            $em = $this->getDoctrine()->getManager();
     
             $entrepot=  $form['nom']->getData()->getId();
     
     
     
     
            $commandes = $em->getRepository('ecommerceBundle:Commandes')->byDepot($entrepot);
       }
       return $this->render('ecommerceBundle:lignecommandeachat:layout/listCommandes.html.twig', array(
                     'commandes' => $commandes));
     
    }
     
     
    et  voila le code de Form:
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('nom','entity', array(
                'class'    => 'ecommerceBundle:Depot',
                'property' => 'nom',
     
     
     
              ));
     
     
    }

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    pour savoir ce que te retourne le formulaire tu peux faire un var_dump comme ceci, dans le controller:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ...
    var_dump($entrepot); exit;
    cela va te donner des indications.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    il m'affiche null , le probléme ce que : $entrepot= $form['nom']->getData()->getId(); n'est pas juste je sais pas comment récuperer la valeur selectionné de ma liste..

  4. #4
    Membre éprouvé
    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
    Points : 1 022
    Points
    1 022
    Par défaut
    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $nom = $form["nom"]->getData(); 
    var_dump($nom );die();
    ça va te retourner l'objet desiré ,tu peux faire getId() ensuite .
    ça marche pour moi.


    Utilisez le bouton , et ajoutez sur les messages utiles

  5. #5
    Membre à l'essai
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    merci pour vos réponses

  6. #6
    Membre à l'essai
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut modifier affichage par une liste déroulante
    Bonjour,
    j'ai un tableau qui contient tous Les commandes enregistrés à ma base de données et je une liste déroulant des entrepots je veux une fois je selectionne une valeur de ma liste automatiquemnt les commandes de l'entrépot seléctionné s'affichent à mon tableau

    voila le code de ma page twig ' listCommandes.html.twig' :
    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
     
                                  <form action="{{ path('rechercheCommandes') }}" method="POST">
                                              {{ form_widget(form) }}
                                          <button class="btn btn-primary" type="submit">Afficher</button>
                                        </form>        
                                          .......
                                           ......
                           <table><thead>.....</thead>
     
                                          <tbody>
                                            {% if commandes|length == 0 %}
                            <tr>
                                <td colspan="4"><center>Aucun article commandé</center></td>
                            </tr>
                        {% endif %}
                                            {% for commande in commandes %}
     
                                            <tr class=" odd" >
     
                                                <td
                                                    class=""
                                                    >
     
     
                                                    {{commande.reference}}
     
     
                                                </td>
     
     
                                                <td
                                                    class=""
                                                    >
     
     
                                             aaa
     
     
                                                </td>
     
     
                                                <td
                                                    class=""
                                                    >
     
     
                                             {{commande.depot.nom}}
     
     
     
                                                </td>
     
     
                                                <td
                                                    class=""
                                                    >
     
     
                                                    <span class="label color_field" style="background-color:#faab00;color:#383838">
                                                        1 - En cours de création
                                                    </span>
     
     
                                                </td>
     
     
                                                <td
                                                    class=" left"
                                                    >
     
     
                                                    27/03/2015
     
     
                                                </td>
     
     
                                                <td
                                                    class=" left"
                                                    >
     
     
                                                    27/03/2015
     
     
                                                </td>
     
     
                                                <td
                                                    class=" left"
                                                    >
     
     
                                                    28/03/2015
     
     
                                                </td>
     
     
                                                    {% endfor %}
    ...
    ....
    ..
     
     
                                                    </div>					
                                            </tr>
                                        </tbody>
                                    </table>
    voila le code de controller :


    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
      public function entrepotAction() {
     
            $entity = new Depot();
            $form = $this->createForm(new DepotType, $entity);
            if ($this->get('request')->getMethod() == 'POST') {
     
                $form->bind($this->get('request'));
                $em = $this->getDoctrine()->getManager();
     
                $entrepot=  $form["nom"]->getData()->getId();
                $commandes = $em->getRepository('ecommerceBundle:Commandes')->byDepot($entrepot);
     
     
            }
            return $this->render('ecommerceBundle:lignecommandeachat:layout/listCommandes.html.twig', array(
                        'commandes' => $commandes));
        }
     
        public function listCommandesAction() {
            $form = $this->createForm(new DepotType());
            $em = $this->getDoctrine()->getManager();
     
     
            $commandes = $em->getRepository('ecommerceBundle:Commandes')->findAll();
            return $this->render('ecommerceBundle:lignecommandeachat:layout/listCommandes.html.twig', array('commandes' => $commandes, 'form' => $form->createView()));
        }
    le code de Form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add('nom','entity', array(
                    'class'    => 'ecommerceBundle:Depot',
                    'property' => 'nom',
     
                //   'multiple' => false,
     
                  ));
     
     
        }
    le code de repository
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class CommandesRepository extends EntityRepository
    {
     
         public function byDepot($depot)
        {
             $qb = $this->createQueryBuilder('u')
                        ->select('u')
                        ->where('u.depot = :depot')
                        ->setParameter('depot', $depot);
            return $qb->getQuery()->getResult();
        }
    le routing :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    rechercheCommandes:
        path:     /rechercheCommandes
        defaults: { _controller: ecommerceBundle:Commandes:entrepot }
    listCommandes:
        path: /listCommandes
        defaults: { _controller: ecommerceBundle:Commandes:listCommandes }
    voila l'interface dans le piéce jointe ,
    le probléme que lorsque je sélectionne un entrepot et je clique sur le bouton afficher rien ne change toujours il m'affiche tous les commandes de ma base de données :/ je sais pas pourqoui :/
    Images attachées Images attachées  

  7. #7
    Membre éprouvé
    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
    Points : 1 022
    Points
    1 022
    Par défaut
    vous devez certainement localiser le problème , on essaie d'abord avec un id existant dans la bd on essaie statiquement ça dans le controlleur
    si ça marche ça veux dire que le repository est bien défini donc ce cas tu vérifie si ce que tu récupere en request est bien ce qu'il faut .
    Ainsi de suite ....

  8. #8
    Membre à l'essai
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    j'ai essayé avec un id statiquement mais rien n'est changé donc je pense que la probléme au niveau du code repository :/ bn j'ai une entité "commande" contient un attribut de type entrepot =>liste déroulante des entités donc nrmlmnt je récupére l'entrepot seléctionné avec id mais je sais pas ou est le probléme ?

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    Bonjour, j'ai une liste déroulante et je veux récupérer la valeur sélectionnée pour afficher un tableau.
    j'ai deux entités groupe et tuteur et je voudrais afficher un tuteur d'un groupe donnée ( la liste déroulante d'un groupe).
    mais le problème c'est que sa m'affiche null :


    $grtut= $form['grtut']->getData();
    var_dump($grtut );die();


    Si quelqu'un à une suggestion svp dite la moi car cela fait 3 jours que je suis bloquée merci .

  10. #10
    Membre à l'essai
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Bonjour Kadi94 ,
    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
     
    $form1 = $this->createForm(new ChosenType());
            if ($this->get('request')->getMethod() == 'POST') {
     
                $form1->bind($this->get('request'));
     
     
     
               $id= $form1["lignecommandesachats"]->getData()->getId();    /*c l'id tuteur pour vous ,  $form1["lignecommandesachats: c'est le nom de mon form"] */
     
                     return $this->redirect($this->generateUrl('ajoutpres' , array(
                        'id' => $id)));
            }
     
     
            return $this->render('ecommerceBundle:lignecommandeachat:layout/commande.html.twig', array(
                        'form1' => $form1->createView()));
            ;
        }
    et puis il faut créer ton fonction 'ajoutpres ' que va récuperer l'id et t'affiche les groupes d ce tuteur , ça marche pour moi

  11. #11
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    Merci pour ta réponse mais si tu peux me copier ton code pour voir l'erreur car quand je met l'id du tuteur :


    "Error: Call to a member function getCinT() on a non-object
    500 Internal Server Error - FatalErrorException"

    je c'est pas qu'est ce qui ne marche pas dans mon code.

  12. #12
    Membre à l'essai
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2015
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    deja j'ai te copier mon code , mais il se peut que t'as pas un id à l'entité tuteur dc si le clé primaire de l'entité tuteur est 'cin' essayer de tester ac cin ...

  13. #13
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    C'est ça fonctionne. . Merci c'est gentil de m'avoir répondu

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

Discussions similaires

  1. [Toutes versions] Recuperer la valeur de l'élément selectionné dans une liste déroulante
    Par camole88 dans le forum VBA Access
    Réponses: 4
    Dernier message: 06/06/2019, 12h00
  2. Réponses: 3
    Dernier message: 18/02/2011, 16h26
  3. conserver la valeur selectionnée d'une liste déroulante affichée
    Par med_alpa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 28/10/2008, 14h13
  4. Réponses: 7
    Dernier message: 07/01/2008, 17h50
  5. Réponses: 1
    Dernier message: 28/07/2006, 09h17

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