簡體   English   中英

如何使用Symfony2中的href路徑將javascript變量值從細枝傳遞到控制器?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM