Bonjour,
Je suis sous PHP.
Actuellement, j'essaye de rendre plus fluide une page de recherche.
L'utilisateur rempli des champs (4 checkbox, 1 input search et 3 liste déroulantes) selon ses envies pour affiner ses recherches.
En dessous, s'affiche un tableau, le tableau est composé de plusieurs champs qui provient de 3/4 tables dans ma base de données (lien manyToOne et OneToMany).
Ma première question est : Est-ce qu'il est possible qu'à chaque fois que l'utilisateur utilise un de ses champs, je puisse afficher les informations dans mon tableau (donc récupérer à chaque clique d'un champ toutes les informations de chaque champ)?
Si oui, j'ai besoin d'aide.
Actuellement, j'ai réussi à faire ce code JS :
Pour l'instant, j'essaye juste de faire fonctionner le principe dès que je tape une lettre dans ma zone de recherche (étape par étape^^).
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 $('#nom').on('keyup', function (e) { $.ajax({ url: "{{ path('home') }}", data: {"site" : null, "nom" : $(this).val(), "dateDebut" : null, "dateFin" : null, "organisateur" : null, "inscrit":null, "notInscrit":null, "passee" : null} }).done(function(datas){ datas.forEach(function(data) { console.log(data); }); }); });
Je récupère mes données et j'envoie tout à mon contrôleur 'home'.
Mon contrôleur :
Je pense que je récupère bien toute mes données avec $param = $request->get('data'); mais j'en suis pas sur à 100%.
Code php : 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 /** * @Route("/home", name="home") */ public function index(EntityManagerInterface $em, Request $request) { $siteRepository = $em->getRepository(Site::class); $sites = $siteRepository->findAll(); $sortieRepository = $em->getRepository(Sortie::class); $param = $request->get('data'); $sorties = $sortieRepository->afficher($param); return $this->json(["sorties" => $sorties]); }
Après je fais ma méthode dans le repository pour filtrer selon les critères sélectionnés mes données (cela fonctionne si je fais de manière classique avec un bouton recherche). Puis je renvoie toutes les données avec json.
Et après j’essayais d'afficher ce que j'ai obtenu.
Mais ça me marche pas, ça me dit que j'ai un problème avec des données circulaires.
Pouvez vous me dire comment régler mon souci s'il vous plaît?
Merci d'avance.
Cordialement
Partager