Comment générer Symfony 2 twig URL avec la valeur de paramètre à partir de Javascript?
Je veux ajouter des paramètres de chaîne de requête à partir de javascript (jquery) pour symfony 2 url.
Je veux passer la valeur du bouton radio sélectionné pour une requête ajax.e.g.en php, j'aurais fait comme
$(document).ready(function() {
$('.id_radio').click(function() {
$.ajax({
'url': 'example.php?id='+($this).val(),
'success': function(r) {
$('#div1').html(r);
}
});
});
Comment générer des URL dans symfony2 twig ? Nous générer l'URL dans symfony 2 twig comme
{{ path('example_path', {'id': id}) }}
où id est twig variable.
J'ai essayé d'utiliser FOSJsRoutingBundle mais ne sais pas si c'est pour le même problème et ne sais pas comment l'utiliser ?
J'ai essayé ci-dessous mais ça ne fonctionne pas.
$('.id_radio').click(function() {
alert(Routing.generate('example_path', {
'id': $(this).val()
}));
$.ajax({
'url': Routing.generate('example_path', {
'id': $(this).val()
}),
'success': function(r) {
$('#div1').html(r);
}
});
});
Solution mentionnée ci-dessous par koskoz travaillé, je n'ai pas réussi options={"exposer"=true} mais après l'ajout, il a travaillé.
Mais il y a un problème de plus. Il ne fonctionne que jusqu'à ce que nous n'avons pas d'actualiser la page. Si nous rafraîchir la page, ça ne fonctionne pas. Pour le faire fonctionner, j'ai supprimer les fichiers de cache de symfony.
Il ne fonctionne pas dans les autres navigateurs si nous avons déjà ouvert dans un navigateur.
OriginalL'auteur vishal | 2014-01-23
Vous devez vous connecter pour publier un commentaire.
C'est exactement ce que FOSJsRoutingBundle vise:
Vous configurez l'itinéraire que vous souhaitez exposer dans JavaScript, charger le JS et puis il suffit de faire quelque chose comme ceci :
OriginalL'auteur DevAntoine
Au lieu de
et à l'aide de FOSJsRoutingBundle
Ci-dessous ont mieux fonctionné pour moi,
path
aide ne fonctionne pas à l'intérieur d'un .fichier js. Vous pouvez avoir un problème de mise en cache avec assetic, parce que j'ai utilisé le FOSJsRoutingBundle un grand nombre de fois, comme dit dans la doc et j'ai été confronté à votre question.OriginalL'auteur vishal
Obtenir le fosjsrouting bundle à partir d'ici: https://github.com/FriendsOfSymfony/FOSJsRoutingBundle
et dans votre fichier de routage ajouter pour l'itinéraire
options:
exposer: vrai
Et dans votre fichier js ajouter
url = Routage.generate('route_name', {paramètre: parameter_value});
OriginalL'auteur Sandeep Gupta