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.