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 :

Mettre à jour liste [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre averti
    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
    Points : 356
    Points
    356
    Par défaut Mettre à jour liste
    Bonjour,

    Dans un formulaire, via de l'Ajax, je cherche à mettre à jour une liste de départements en fonction du pays choisi, lui aussi dans une liste.

    Voici mon champs dans le formulaire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $builder->add('pays','entity', array('class'=>'Hotels\GestionAnnoncesBundle\Entity\Pays', 'attr'=>array('onblur'=>'departementsByPays(this.value)')));


    Voici mon Javascript dans mon template :


    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
     
     function departementsByPays(idPays)
      {
        var DATA = "idPays="+idPays;
     
        $.ajax
    	  ({
    		  type: "POST",
    		  url: "{{ path('province_departementsByPays') }}",
    		  data: DATA,
     
          success: function(res)
    		   {
    			  alert(res);
    		   }
    	  });
     
    	  return (false);
      }


    Voici ma route :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    province_departementsByPays:
        pattern:  /departementsByPays
        defaults: { _controller: "HotelsGestionAnnoncesBundle:Province:departementsByPays" }
        requirements: { _method: post }

    Voici la fonction dans le 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
    public function departementsByPaysAction()
         {
          $request = $this->container->get('request');
     
          if($request->isXmlHttpRequest())
          {
              $idPays = $request->request->get('idPays');
     
              $em = $this->container->get('doctrine')->getEntityManager();
     
              $pays = $em->getRepository('HotelsGestionAnnoncesBundle:Pays')->find($idPays);
              $departements = $pays->getDepartements();
     
              return new \Symfony\Component\HttpFoundation\Response('2');
          }
         }


    Je ne vois pas maintenant comment affecter les départements récupérés dans le controller à la liste liée au champ de mon formulaire. Autrement dit, je cherche à savoir quelle doit être la bonne réponse dans mon controller en lieu et place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return new \Symfony\Component\HttpFoundation\Response('2');
    et la bonne affectation dans mon Javascript en lieu et place de
    .

    Je vous remercie d'avance de toute aide apportée.

  2. #2
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut
    Au début vous devez préparer un vue qui reçoit la liste des départements et construit la select, exemple la template Departements\liste.html.twig :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <select id="departements" name="departement">
                        <option value="0"></option>
     
    				{% for dept in departements %}
     
                        <option value="{{ dept.id }}" >{{ dept.nom }}</option>
    		{% endfor %}
    </select>
    puis dans l'action, et comme les autres action, vous créer la réponse. ça peut être avec renderResponse(), render() ou return array(...) si on utilise les annotaions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public function departementsByPaysAction()
         {
              ...
              $departements = $pays->getDepartements(); 
     
              return $this->container->get('templating')->renderResponse(
                'MonBundle:Departements:liste.html.twig',
    array('departements'=>$departements)
            );
     
         }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public function departementsByPaysAction()
         {
              ...
              $departements = $pays->getDepartements(); 
    $rendred= $this->container->get('templating')->render('MonBundle:Departements:liste.html.twig',array('departements'=>$departements));
     
              return new \Symfony\Component\HttpFoundation\Response($rendred);
     
         }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /**
    *Template()
    */
    public function departementsByPaysAction()
         {
              ...
              $departements = $pays->getDepartements(); 
              /*Dans cet cas il faut nommer la template avec le même nom que l'action*/
              return array('departements'=>$departements);
     
         }

  3. #3
    Membre averti
    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
    Points : 356
    Points
    356
    Par défaut
    Bonjour et merci pour votre réponse.

    Donc en fonction de celle-ci, j'ai effectué les modifications suivantes.

    Voici ma route pour créer une nouvelle province :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    province_new:
        pattern:  /new
        defaults: { _controller: "HotelsGestionAnnoncesBundle:Province:new" }
    Voici la fonction appelée alors dans 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
        public function newAction()
        {
            $entity = new Province();
            $form   = $this->createForm(new ProvinceType(), $entity);
     
            $em = $this->container->get('doctrine')->getEntityManager();
    	      $departements = $em->getRepository('HotelsGestionAnnoncesBundle:Departement')->findAll();
     
            return $this->render('HotelsGestionAnnoncesBundle:Province:new.html.twig', array(
                'entity' => $entity,
                'form'   => $form->createView(),
                'departements' => $departements
            ));
        }
    Voici le formulaire utilisé, dans lequel j'ai supprimé l'ajout du champ 'Département' :

    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
    <?php   
     
    namespace Hotels\GestionAnnoncesBundle\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilder;
    use Symfony\Component\Form\FormEvents;
    use Symfony\Component\Form\Event\DataEvent;
    use Doctrine\ORM\EntityRepository;
     
     
    class ProvinceType extends AbstractType
    {
        public function buildForm(FormBuilder $builder, array $options)
        {
            $builder
                ->add('nom')
                ->add('pays','entity', array('class'=>'Hotels\GestionAnnoncesBundle\Entity\Pays', 'attr'=>array('onblur'=>'departementsByPays(this.value)')));               
        }
     
        public function getName()
        {
            return 'hotels_gestionannoncesbundle_provincetype';
        }
    }
    Voici le template utilisé, dans lequel j'ai alors ajouté la création du select pour le champ 'Département' :

    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
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script>
     
    <script type="text/javascript">
     function paysByDepartement(idDepartement)
      {
        var DATA = "idDepartement="+idDepartement;
     
        $.ajax
    	  ({
    		  type: "POST",
    		  url: "{{ path('province_paysByDepartement') }}",
    		  data: DATA,
     
          success: function(res)
    		   {
    			  document.getElementById('hotels_gestionannoncesbundle_provincetype_pays').disabled = true;
    			  document.getElementById('hotels_gestionannoncesbundle_provincetype_pays').value = res;
    		   }
    	  });
     
    	  return (false);
      }
     
     
     function departementsByPays(idPays)
      {
        var DATA = "idPays="+idPays;
     
        $.ajax
    	  ({
    		  type: "POST",
    		  url: "{{ path('province_departementsByPays') }}",
    		  data: DATA,
     
          success: function(res)
    		   {
    			  alert(res);
    		   }
    	  });
     
    	  return (false);
      }
    </script>
     
    <h1>Province creation</h1>
    <form action="{{ path('province_create') }}" method="post" {{ form_enctype(form) }}>
        <div class="error">
    	   {{ form_errors(form) }}
        </div>
        <table>
         <tr>
          <th>{{ form_label(form.nom) }}</th>
          <th>Département</th>
          <th>{{ form_label(form.pays) }}</th>
         </tr>
         <tr>
          <td>
           {{ form_errors(form.nom) }}
    	     {{ form_widget(form.nom) }}
          </td>
          <td>
           <select id="hotels_gestionannoncesbundle_provincetype_departement" name="hotels_gestionannoncesbundle_provincetype[departement]" required="required" onblur="paysByDepartement(this.value)">
            <option value="0"></option>
     
            {% for dept in departements %}
             <option value="{{ dept.id }}" >{{ dept.nom }}</option>
            {% endfor %}
     
           </select>
          </td>
          <td>
           {{ form_errors(form.pays) }}
    	     {{ form_widget(form.pays) }}
          </td>
         </tr>
        </table>
        <p>
            <button type="submit">Create</button>
        </p>
    </form>
     
    <ul class="record_actions">
        <li>
            <a href="{{ path('province') }}">
                Back to the list
            </a>
        </li>
    </ul>
    Voici la route appelée pour l'enregistrement de la province :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    province_create:
        pattern:  /create
        defaults: { _controller: "HotelsGestionAnnoncesBundle:Province:create" }
        requirements: { _method: post }
    Voici la fonction alors appelée dans le 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 createAction()
        {
            $entity  = new Province();
            $request = $this->getRequest();
            $form    = $this->createForm(new ProvinceType(), $entity);
            $form->bindRequest($request);
     
            $em = $this->getDoctrine()->getEntityManager();
     
            if ($form->isValid()) {
                //$em = $this->getDoctrine()->getEntityManager();
                $em->persist($entity);
                $em->flush();
     
                return $this->redirect($this->generateUrl('province_show', array('id' => $entity->getId())));
     
            }
     
            $departements = $em->getRepository('HotelsGestionAnnoncesBundle:Departement')->findAll();
     
            return $this->render('HotelsGestionAnnoncesBundle:Province:new.html.twig', array(
                'entity' => $entity,
                'form'   => $form->createView(),
                'departements' => $departements
            ));
        }
    Lors de l'exécution de celle-ci, je reste sur mon template de création avec, comme erreur :

    " The CSRF token is invalid. Please try to resubmit the form
    This form should not contain extra fields

    "

    De plus, au niveau du champ 'Pays', j'ai l'erreur "This value should not be null" alors qu'il a bien été mis à jour via l'exécution de l'Ajax suite au choix du département.

    Quelqu'un aurait une piste?

    Merci d'avance.

  4. #4
    Membre averti
    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
    Points : 356
    Points
    356
    Par défaut
    Je viens de régler le problème de l'erreur "" The CSRF token is invalid. Please try to resubmit the form" en joutant dans le template. Par contre, apparement, le champ select pour les départements que je construis dans le template n'a pas l'air d'être apprécié. Je ne vois pas alors comment faire.

  5. #5
    Membre averti
    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
    Points : 356
    Points
    356
    Par défaut
    Bonjour et merci beaucoup pour ton intérêt. Je tente de prendre en main ce framework en lisant toute les docs (en Français car mon Anglais est nul), mais je rame grave.

    tu les insère dans ton select
    C'est ici qu'est mon problème. Ce select, je dois tout d'abord le créer. Donc, soit je le fais dans mon formulaire (ce que je préfèrerais) via

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $builder->add('departement','entity', array('class'=>'Hotels\GestionAnnoncesBundle\Entity\Departement', 'attr'=>array('onblur'=>'paysByDepartement(this.value)')))
    soit via le template via

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select id="hotels_gestionannoncesbundle_provincetype_departement" name="hotels_gestionannoncesbundle_provincetype[departement]" required="required" onblur="paysByDepartement(this.value)">
            <option value="0"></option>
     
            {% for dept in departements %}
             <option value="{{ dept.id }}" >{{ dept.nom }}</option>
            {% endfor %}
     
    </select>
    Dans le premier cas, je ne vois pas comment, dans la fonction Javascript, comment indiquer de mettre à jour le select.

    Dans le second cas, j'obtiens l'erreur

    This form should not contain extra fields
    J'ai une fonction Javascript sur chacun des champs car la liste 'Départements' doit se mettre à jour si un pays est sélectionné et, inversément, si un département est sélectionné, la liste 'Pays' doit se mettre à jour pour présenté le seul pays correspondant.

  6. #6
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut query_builder
    Pour utiliser la première solution, vous pouvez jeter un coup d’œil sur cette discussion: http://www.developpez.net/forums/d11...-id-parametre/

    En conclusion tu utilise l'attribut 'query_builder' avec un paramètre (dans notre cas c'est l'id de Pays.

  7. #7
    Membre averti
    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
    Points : 356
    Points
    356
    Par défaut
    Un tout grand merci pour ton aide...

    En tentant la méthode, j'obtiens cette erreur dans le formulaire :

    Catchable Fatal Error: Argument 1 passed to Hotels\GestionAnnoncesBundle\Form\{closure}() must be an instance of Hotels\GestionAnnoncesBundle\Form\DepartementRepository, instance of Hotels\GestionAnnoncesBundle\Entity\DepartementRepository given, called in C:\wamp\www\Symfony\vendor\symfony\src\Symfony\Bridge\Doctrine\Form\ChoiceList\EntityChoiceList.php on line 93 and defined in C:\wamp\www\Symfony\src\Hotels\GestionAnnoncesBundle\Form\ProvinceType.php line 21
    Or, c'est une instance de Entity\DepartementRepository que je passe, car je ne vois pas ce qu'est le Form\DepartementRepository :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ->add('departement','entity', array('class'=>'Hotels\GestionAnnoncesBundle\Entity\Departement',
                                                    'query_builder' => function(DepartementRepository $depRep) use ($idPays)
                                                                        {
                                                                         return $depRep->getPays($idPays);
                                                                        } 
                                                    ))
    Je suis perplexe...

  8. #8
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut
    J'ai pas compris d'où vient l'erreur, mais je vous propose de passer directement la requête au lieu d’appeler une méthode, en utilisant la classe EntityRepository:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ->add('departement','entity', array('class'=>'Hotels\GestionAnnoncesBundle\Entity\Departement',
                                                    'query_builder' => function(EntityRepository $er ) use ($idPays)
                                                                        {                             
    return $er->createQueryBuilder()
                            ->from('GestionAnnoncesBundle:departement', 'd')
                            ->where('d.idPays = :id')
                            ->setParameter('id', $idPays);
                                                                        } 
                                                    ))

  9. #9
    Membre habitué
    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
    Points : 153
    Points
    153
    Par défaut
    Sinon j'ai une solution!

    http://www.developpez.net/forums/d11...p-text-entite/

    Tu intègres le nouveau type EntityId dans ton bundle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        ->add('departement','entity_id',  array('class'=>'Hotels\GestionAnnoncesBundle\Entity\Pays',
    'query_builder' => function($repository, $id) {
                    return $repository->createQueryBuilder('c')
                        ->where('c.id = :id AND )
                        ->setParameter('id', $id);));
    tu met ce champ en hidden et tu créé dans ton twig
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="departement" onchange="changementDepartement(this)"></select>
    la fonction changementDepartement permet de mettre l'id de l'option dans ton champ hidden departement

    Puis dans le champ pays tu rajoute la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="departementByPays"
    qui fait un appel ajax et qui te renvoie tout les départements et tu les insère dans le select name="departement" en javascript!!

    Voila j'espere que c'est assez clair!

  10. #10
    Membre averti
    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
    Points : 356
    Points
    356
    Par défaut
    Voilà, je suis enfin arrivé à faire ce que je désirais : mettre à jour le pays en fonction du département sélectionné, ou les départements en fonction du pays sélectionné.

    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
    <?php   
     
    namespace Hotels\GestionAnnoncesBundle\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilder;
    use Symfony\Component\Form\FormEvents;
    use Symfony\Component\Form\Event\DataEvent;
    use Doctrine\ORM\EntityRepository;
    use Hotels\GestionAnnoncesBundle\Entity\DepartementRepository;
    use Hotels\GestionAnnoncesBundle\Entity\PaysRepository;
     
     
    class ProvinceType extends AbstractType
    {
        public function buildForm(FormBuilder $builder, array $options)
        {
            $builder
                ->add('nom')
                ->add('departement','entity', array('class'=>'Hotels\GestionAnnoncesBundle\Entity\Departement', 'attr'=>array('onChange'=>"majPays('hotels_gestionannoncesbundle_provincetype_pays', this.value)")))
                ->add('pays','entity', array('class'=>'Hotels\GestionAnnoncesBundle\Entity\Pays', 'attr'=>array('onChange'=>"majDepartements('hotels_gestionannoncesbundle_provincetype_departement', this.value)")));               
        }
     
        public function getName()
        {
            return 'hotels_gestionannoncesbundle_provincetype';
        }
    }
    Mon template :

    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
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script>
     
    <script type="text/javascript">
     
     window.onload = function()
      {
       ajoutOptionVide('hotels_gestionannoncesbundle_provincetype_departement');
       ajoutOptionVide('hotels_gestionannoncesbundle_provincetype_pays');
      };
     
     function ajoutOptionVide(idElem)
      {
       document.getElementById(idElem).options[0] = new Option('', 0, true, true);
      }
     
     function majPays(idSelect, idDepartement)
      {
        var DATA = "idDepartement="+idDepartement;
     
        $.ajax
    	  ({
    		  type: "POST",
    		  url: "{{ path('province_paysByDepartement') }}",
    		  data: DATA,
     
          success: function(res)
    		   {
    			  var tabRes = res.split('+');
     
            document.getElementById(idSelect).options.length = 0;
    			  document.getElementById(idSelect).options[0] = new Option(tabRes[1], tabRes[0], true, false)        		  
    		   }
    	  });
     
    	  return (false);
      }
     
     function majDepartements(idSelect, idPays)
      {
        var DATA = "idPays="+idPays;
     
        $.ajax
    	  ({
    		  type: "POST",
    		  url: "{{ path('province_departementsByPays') }}",
    		  data: DATA,
     
          success: function(res)
    		   {
    			  var tabRes = res.split('+');
     
            document.getElementById(idSelect).options.length = 0;
            document.getElementById(idSelect).options[0] = new Option('', 0, true, false);
     
            var tabDep;
     
            for(i = 0; i < tabRes.length; i++)
    			   {
              tabDep = tabRes[i].split('_');          
              document.getElementById(idSelect).options[i + 1] = new Option(tabDep[1], tabDep[0]);
             }      		  
    		   }
    	  });
     
    	  return (false);
      }
    </script>
     
    <h1>Province creation</h1>
    <form action="{{ path('province_create') }}" method="post" {{ form_enctype(form) }}>
        <div class="error">
    	   {{ form_errors(form) }}
        </div>
        <table>
         <tr>
          <th>{{ form_label(form.nom) }}</th>
          <th>{{ form_label(form.departement) }}</th>
          <th>{{ form_label(form.pays) }}</th>
         </tr>
         <tr>
          <td>
           {{ form_errors(form.nom) }}
    	     {{ form_widget(form.nom) }}
          </td>
          <td>
           {{ form_errors(form.departement) }}
           {{ form_widget(form.departement) }}
          </td>
          <td>
           {{ form_errors(form.pays) }}
    	     {{ form_widget(form.pays) }}
          </td>
         </tr>
        </table>
        {{ form_rest(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 à tous pour votre aide

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

Discussions similaires

  1. Soucis pour mettre à jour une liste déroulante.
    Par Fbzn_office dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/03/2008, 19h22
  2. Réponses: 1
    Dernier message: 20/03/2007, 08h58
  3. Réponses: 3
    Dernier message: 26/09/2006, 11h17
  4. impossible de mettre à jour une liste déroulante
    Par nicolovitch dans le forum Access
    Réponses: 3
    Dernier message: 02/08/2006, 11h31
  5. Réponses: 4
    Dernier message: 01/10/2005, 17h59

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