Bonjour Azorgh et merci pour ta réponse claire et précise...
Je me doutais bien que ça ne serait pas aussi facile ...
J'ai donc commencé à mettre en place une requête Ajax mais curieusement l'url que je renseigne s'additionne à l'url de la page courante alors que celle-ci ne devrait contenir que celle précisée dans le controller AcomptesController par exemple :
Lorsque je fais un fetch pour obtenir les acomptes, il éxécute la requête sur l'adresse : /admin/ecritures/modifier-ecriture/11798/acomptes-ecritures, or la fin de cette adresse ("acomptes-ecriture") s'est rajoutée à l'adresse principale de ma page pourtant les 2 contrôleurs sont bien séparés...
L'adresse réelle qui produit les bons résultats est bien celle du controller des acomptes c à d https://127.0.0.1/admin/acomptes/acomptes-ecriture/+ numéro de la facture, alors pourquoi me fait il une concaténation avec l'adresse de la page courante pourtant générée avec un autre controller ?
Merci d'avance pour ton aimable aiguillage... :)
Voici le controller AcomptesController.php :
//Afficher les lignes d'acomptes pour cette écriture + le total d'acomptes en Ajax
#[Route('acomptes-ecriture/{id}', name: 'acomptes-ecriture')]
public function acomptesEcriture(Ecritures $ecritures, AcomptesRepository $acomptesRepository, $id): Response
{
$lignes = $acomptesRepository->findBy(['liaison' => $id], ['date_acompte' => 'desc']);
$idEcriture = $ecritures->getId();
$totalAcomptes = $ecritures->getTotalAcomptesEcriture();
return new JsonResponse([
'content' => $this->renderView('_partials/_acomptes-ecriture.html.twig', compact('lignes', 'totalAcomptes', 'idEcriture'))
]);
}
Code JS :
```
window.onload = () => {
const tabContent = document.querySelector(".tabscontent");
const radButtons = document.querySelectorAll(".tabsradio");
radButtons.forEach((rb) =>
rb.addEventListener("change", (e) => {
let url = "";
switch (e.target.id) {
case "lignes":
url = "lignes-ecriture";
break;
case "acomptes":
url = "acomptes-ecriture";
break;
case "avoirs":
url = "avoirs-ecriture";
break;
default:
return;
}
fetch(url, {
method: "GET",
headers: {
"X-Requested-With": "XMLHttpRequest",
"Content-Type": "Application/json",
},
})
.then((response) => response.json())
.then((data) => {
tabContent.innerHTML = data.content;
})
.catch((error) => alert("Erreur : " + error));
})
);
};