Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generating routes in javascript with Twig and Symfony2

Quite odd problem, sorry for asking, i'm quite new to Symfony/Twig. My route requires a mandatory region_id paramenter:

ajax_provinces_by_region:   pattern: /ajax/region/{region_id}/provinces   defaults: {_controller: SWAItaliaInCifreBundle:Ajax:provincesByRegion }   requirements: {region_in: \d+} 

The question is: how can i generate this route based on a select element in javascript (code below)?

The problem is: i can't use path and url helpers from Symfony as they require to specify the region_id parameter (this.value) i can't access because it's a javascript variable (and Twig is compiled server-side).

$(document).ready(function() {     $('select#regions').change(function(){          // Make an ajax call to get all region provinces         $.ajax({             url: // Generate the route using Twig helper         });      }); }); 
like image 864
gremo Avatar asked Oct 02 '11 14:10

gremo


2 Answers

I know it's an old question, but just in case you don't want to install a bundle like FOSJsRoutingBundle, here's a little hack:

var url = '{{ path("yourroute", {'region_id': 'region_id'}) }}';  url = url.replace("region_id", this.value); 

'region_id' is just used as a placeholder, then you replace it in JS with your actual variable this.value

like image 122
Ben Avatar answered Sep 23 '22 11:09

Ben


You can use the FOSJsRoutingBundle.

like image 28
igorw Avatar answered Sep 24 '22 11:09

igorw