我想知道如何使用Symfony2中的href路径将javascript变量值从twig传递给控制器。这是我的代码:
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
</head>
<body>
<script>
var a = "hello";
var b = "hi";
var c = $('<a href="{{ path('ikproj_groupe_homepagegroupe1', {'id': a, 'num': b}) }}">send data</a>');
$('body').append(c);
</script>
</body>
</html>
问题是它显示以下消息:变量&#34; a&#34;不存在 。 所以,我的问题是:这样做的正确代码是什么?
答案 0 :(得分:1)
您需要设置twig
变量。例如:
<script>
{% set a = 'hello' %}
{% set b = 'hi' %}
var c = $('<a href="{{ path('ikproj_groupe_homepagegroupe1', {'id': a, 'num': b}) }}">send data</a>');
$('body').append(c);
</script>
答案 1 :(得分:1)
我发现最简单的方法是使用href(或可能的数据)属性设置原始模板中的路径,如..
<a href="{{ path('route_name', {'id': a }) }}"
class="some-specific-class">Click</a>
或使用数据属性..
<a href="#" data-href="{{ path('route_name', {'id': a }) }}"
class="some-specific-class">Click</a>
然后在javascript中使用..
$('a.some-specific-class').on('click', function(e) {
e.preventDefault();
var href = $(this).attr('href');
.. or
var href = $(this).data('href');
.. do things with href
});
或者你可以使用FOSJSRoutingBundle并在数据属性中传递id并使用..来生成路径。
$('a.something').on('click', function(e) {
e.preventDefault();
var id = $(this).data('id'),
url = Routing.generate('rout_name', {'id': id });
.. do stuff with url
});