Filtrage ajax dans projet symfony

Par mombabil, il y a 2 ans


Bonjour,

je rencontre un soucis dans mon dernier projet symfony. Je dois créer un filtrage dynamique des données sur une page de vente de voitures d'occasion.

J'essaie d'utiliser ajax mais je ne parvient pas a obtenir le rendu souhaité, je me retrouve toujours avec ce message d'erreur :

TypeError: Cannot read properties of undefined (reading 'content')

Je parviens a récuperer l'url des données modifier et quand je dump mon résultat j'ai bien les données filtrées, mais impossible de les afficher.

Voila mon code :

scripts-cars.js

// traitement ajax des données const FiltersForm = document.querySelector("#filters"); // on crée une boucle sur les input document.querySelectorAll("#filters input").forEach((input) => { input.addEventListener("change", () => { // on intercepte les clics // on recupere les données du formulaire const form = new FormData(FiltersForm); // on fabrique la queryString const Params = new URLSearchParams(); form.forEach((value, key) => { Params.append(key, value); }); // on recupere l'url active const url = new URL(window.location.href); // on lance la requete ajax fetch(url.pathname + "?" + Params.toString() + "&ajax=1", { headers: { "X-Requested-With": "XMLHttpRequest", }, }) .then((response) => { response.json(); }) .then((data) => { // on recupere la zone a modifier const content = document.querySelector("#cars-content"); // on remplace content.innerHTML = data.content; }) .catch((e) => alert(e)); }); });

2 réponses

Soundboy39, il y a 2 ans

Hello,

À priori la variable "data" dans le fetch est "undefined".

Est-ce que tu est sur de la réponse qu'envoie le backend au frontend ?
Il y a 2 choses qui me choquent :

  • pas de propriété "content";
  • un "renderView" avec un fichier twig;
Grafikart, il y a 2 ans

Qaund tu fais ton fetch tu oublie de return la promesse du json

.then((response) => { response.json(); })

Au lieu de

.then((response) => { return response.json(); })