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));
});
});
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 :
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();
})