Dans une appli sf2, j'ai des appels ajax (jQuery) déportés dans des assets js. En voici un exemple :
<script type="text/javascript">
function getClusters()
{
var list_groups = '';
$('#tabPrecise').html('');
$.ajax({
type: "POST",
url: "/getKwGroupManage",
async: false,
success: function(msg)
{
list_groups = eval('{' + msg + '}');
}
});
for (var i in list_groups)
{
$('#tabPrecise').append('<tr><td style="padding:5px;" class="liClusterKw" id="' + list_groups[i].id + '">' + list_groups[i].name + '</td>'
+ '<td><input type="checkbox" rel="' + list_groups[i].id + '" id="' + list_groups[i].id + '" /></td></tr>');
}
}
</script>
Je n'aime pas du tout l'url en dur et j'aimerais la remplacer par une génération côté serveur (avec la route qui va bien). Problème : on est dans un asset js (fichier javascript indépendant), donc je n'ai pas de traitement serveur à disposition. Il me semble que je n'ai que deux solutions : soit déplacer cette fonction dans mon template twig (pour bénéficier des tags de génération d'url par routing, mais bof...), soit générer l'url du routing dans mon twig et la récupérer en jQuery (bof aussi), ou d'autres solutions que je ne veux même pas envisager (une nouvelle requête ajax pour résoudre la route côté serveur... lol Quelle est selon vous la meilleure façon (propre, maintenable, accessible, etc) de le faire ? Suis-je forcé de réimporter l'appel ajax dans mon template twig, ou y'a t-il mieux ?
Merci