[英]How to pass javascript variables values from twig to controller using href path in Symfony2?
我想知道如何使用Symfony2中的href路徑將javascript變量值從細枝傳遞到控制器。 這是我的代碼:
<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>
問題是它顯示此消息:變量“ a”不存在。 因此,我的問題是:執行此操作的正確代碼是什么?
您需要設置一個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>
我發現最簡單的方法是使用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傳遞到data屬性中,並使用生成路由。
$('a.something').on('click', function(e) {
e.preventDefault();
var id = $(this).data('id'),
url = Routing.generate('rout_name', {'id': id });
.. do stuff with url
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.