Bonjour à tous,

Je cherche à générer une url depuis javascript avec la fonction path() mais celle-ci n'est pas interprétée correctement :

``titreLundi.nextElementSibling.innerHTML =<a href="{{path('rendez-vous_creer-rdv-jour',{jourRdv:${dateLundi.toISOString().split("T")[0]}})}}"><i class="fa-solid fa-circle-plus"></i></a>````;

Est-on obligé de passer par le FOS routing bundle pour que cela marche ? J'aimerai trouver une astuce sans avoir à l'utiliser !

Merci d'avance pour vos réponses

4 réponses


Hello :)

Alors en texte ce sera mal interprété, il faut utiliser le createElement:

const link = createElement("a")
link.href = path('rendez-vous_creer-rdv-jour' .... )

const link_icon = createElement("i")
link_icon.classlist.add("fa-solid fa-circle-plus")

const container = titreLundi.nextElementSibling

link.appendChild(link_icon)
container.appendChild(link)

Je l'ai fais à l'aveugle alors il ffaudra adapter, mais grossomerdo l'idée c'est de créer l'élément puis de le pousser dans la div qui doit contenir le lien :)

Bonjour,

Merci d'avoir répondu

Malheureusement même si ta méthode est la bonne l'url ne veut pas être interprétée dans twig, il semblerait que la seule solution soit le fosjbundle ou replace ?

le fonction path s'execute côté serveur et le javascript côté client, twig se transforme en html en arrivant au client et c'est seulement après que le javascript intervient,
tu as une filtre date en twig {{ 'now' | date('Y') }} pour avoir l'année par exemple.

{{ path('rendez-vous_creer-rdv-jour',{jourRdv: 'now' | date('d-m-Y') }) }}

Un moyen simple de générer des URL en JavaScript sans utiliser FOSRoutingBundle :
var dateLundi = new Date();
var jourRdv = dateLundi.toISOString().split("T")[0];
var url = "/rendez-vous-creer-rdv-jour/" + jourRdv;
titreLundi.nextElementSibling.innerHTML = '<a href="' + url + '"><i class="fa-solid fa-circle-plus"></i></a>';