Bonjour,
J'ai un formulaire de recherche qui se compose de deux champs avec obligation de saisie et deux autres champs qui ne sont pas obligatoire.
Lorsque je soumet mon formulaire, une fonction javascript récupère les valeurs du formulaire pour les envoyer à mon contrôleur .
Ma fonction Javascript
L'action de mon contrôleur chargé de récupérer les valeurs saisie afin de les envoyer à ma fonction présente dans mon repository.
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 function showResultat() { /* Champs OBLIGATOIRE*/ var champs1 = document.getElementsById("champs1").value; var champs2 = document.getElementsById("champs2").value; /* Champs NON OBLIGATOIRE*/ var champs3= document.getElementsById("champs3").value; var champs4= document.getElementsById("champs4").value; $.ajax({ type: "GET", url: "{{ path('monControleur') }}", data: {'champs1 ': champs1 , 'champs2': champs2 , 'champs3':champs1, 'champs4':champs4}, cache: false, success: function (data) { $('#resultat').html(data); } }); return false; }
Ma fonction présente dans mon repository
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 public function showResultatAction(Request $request){ if ($request->isXmlHttpRequest()) { // Champs OBLIGATOIRE $champs1 = $request->query->get('champs1'); $champs2 = $request->query->get('2'); // Champs NON OBLIGATOIRE $champs3 = $request->query->get('champs3'); $champs4 = $request->query->get('champs4'); $em = $this->getDoctrine()->getManager(); $listeGroupe = $em->getRepository('MainBundle:PqtDetails')->getListeGroupe($champs1,$champs2,$champs3,$champs4); ... } ... }
Je voudrais mettre une condition dans ma requête qui dit , si le champs3 et champs4 sont vide alors j’exécute ma requête seulement avec les champs1 et champs2 en paramètre, sinon ma requête s’exécute avec tous les champs en paramètre.
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 getListeGroupe($champs1,$champs2,$champs3,$champs4){ $results = $this->_em->createQuery(' SELECT p.champs1, p.champs2 FROM MainBundle:PqtDetails p WHERE p.champs1 = :champs1 AND (p.champs2 >= :champs2 AND p.champs3 <= :champs3) AND p.champs4 is not null ') ->setParameters(array('champs1'=>$champs1, 'champs2'=>$champs2,'champs3'=>$champs3,'champs4'=>$champs4)) ->getResult(); return $results; }
Merci d'avance pour votre aide
Partager