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 :

Ajax listes déroulantes liées [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut Ajax listes déroulantes liées
    Bonjour,

    Je débute avec Symfony2. Par de l'Ajax, je cherche à mettre à jour une liste en fonction du choix fait dans une précédente : plus explicitement, lorsque l'utilisateur choisi, dans une liste, un département, je voudrais que, dans la liste 'Pays', ce soit le bon pays qui soit sélectionné.

    Je suis obligé d'avoir une liste 'Pays' car le champs 'Département' n'est pas obligatoire (tous les pays n'en n'ont pas), tandis que le champs 'Pays' l'est.

    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
    <?php
     
    namespace Hotels\GestionAnnoncesBundle\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilder;
     
    class ProvinceType extends AbstractType
    {
        public function buildForm(FormBuilder $builder, array $options)
        {
            $builder
                ->add('nom')
                ->add('departement')
                ->add('pays')
            ;
        }
     
        public function getName()
        {
            return 'hotels_gestionannoncesbundle_provincetype';
        }
    }
    Voici ma vue :

    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
    <h1>Province creation</h1>
     
    <form action="{{ path('province_create') }}" method="post" {{ form_enctype(form) }}>
        {{ form_widget(form) }}
        <p>
            <button type="submit">Create</button>
        </p>
    </form>
     
    <ul class="record_actions">
        <li>
            <a href="{{ path('province') }}">
                Back to the list
            </a>
        </li>
    </ul>
    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé
    Profil pro
    IED Web
    Inscrit en
    Octobre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : IED Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 60
    Par défaut
    http://blog.azancadas.com/2011/08/sy...iven-approach/

    Solution qlq peu corsée pour un débutant mais bon.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Par défaut
    Je ne vois pas pas où est la difficulté si tu as déjà fait des requêtes Ajax. Ce n'est pas un problème de Symfony2, mais plutot de Javascript si tu ne sais pas du tout faire.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Bonjour,

    J'avais l'habitude de travailler avec de l'Ajax, hors Symfony. Je mettais un 'onBlur' sur le premier 'select', j'insérais le second 'select' dans un 'div' et ensuite, via de l'Ajax, je mettais à jour ledit 'div'.

    Dans Symfony, apparemment, ça ne fonctionne pas de la même manière. Je ne sais pas où placer mon 'onBlur' et comment mettre à jour le formulaire alors que je n'ai pas de 'div'.

  5. #5
    Invité de passage
    Inscrit en
    Janvier 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 1
    Par défaut
    Citation Envoyé par dubitoph Voir le message
    Bonjour,

    J'avais l'habitude de travailler avec de l'Ajax, hors Symfony. Je mettais un 'onBlur' sur le premier 'select', j'insérais le second 'select' dans un 'div' et ensuite, via de l'Ajax, je mettais à jour ledit 'div'.

    Dans Symfony, apparemment, ça ne fonctionne pas de la même manière. Je ne sais pas où placer mon 'onBlur' et comment mettre à jour le formulaire alors que je n'ai pas de 'div'.
    Bonjour,

    tu peux mettre tous les attributs que vous voulez dans le formtype :

    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
    <?php
     
    namespace Hotels\GestionAnnoncesBundle\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilder;
     
    class ProvinceType extends AbstractType
    {
        public function buildForm(FormBuilder $builder, array $options)
        {
            $builder
                ->add('nom')
                ->add('departement')
                ->add('pays','entity', array('class'=>votre entity,
                   'attr'=>array('onblur'=>'votre fonction'))
            ;
        }
     
        public function getName()
        {
            return 'hotels_gestionannoncesbundle_provincetype';
        }
    }

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Ok, merci beaucoup pour l'information. Dans ce cas, ce serait plutôt :

    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
    <?php
     
    namespace Hotels\GestionAnnoncesBundle\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilder;
     
    class ProvinceType extends AbstractType
    {
        public function buildForm(FormBuilder $builder, array $options)
        {
            $builder
                ->add('nom')
                ->add('departement' , 'entity', array('class'=>'Departement',
                   'attr'=>array('onblur'=>'fonction de mise à jour'))
                ->add('pays')
            ;
        }
     
        public function getName()
        {
            return 'hotels_gestionannoncesbundle_provincetype';
        }
    }
    Mais comment indiquer, dans mon javascript, que c'est le 'select' 'Pays' qui doit être mis à jour? Avant, par exemple, je faisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(xhrMajLoc.readyState == 4 && xhrMajLoc.status == 200)
         {
          document.getElementById('divLocalites').innerHTML = xhrMajLoc.responseText;
         }

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

Discussions similaires

  1. [DOM] Deuxieme liste déroulante liée via ajax, encore inclure ajax?
    Par clara1 dans le forum Général JavaScript
    Réponses: 48
    Dernier message: 16/05/2008, 15h06
  2. [AJAX] Listes déroulantes liées
    Par Jiraiya42 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 14/04/2008, 09h58
  3. ajax, php et 3 listes déroulantes liées
    Par jfox dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/04/2008, 14h13
  4. Plusieurs listes déroulantes liées (ajax)
    Par sassien dans le forum Struts 2
    Réponses: 1
    Dernier message: 18/03/2008, 13h52
  5. [AJAX] Listes déroulantes liées avec Ajax
    Par paupiette dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/08/2006, 16h51

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