Symfony2 控制器和 Javascript 参数传递

Symfony2 controller and Javascript argument passing

本文关键字:参数传递 Javascript 控制器 Symfony2      更新时间:2023-09-26

我正在使用symfony2开发一个应用程序。我想知道如何从控制器中的模板接收参数,因为我想将参数的值存储在数据库中。参数将在模板内的 JavaScript 脚本中获取其值,并且必须在提交按钮时传递给控制器。这是脚本:

$("MatchedTag").click(function () 
 {
       $(this).toggleClass("highlight");
       var IdOfTag = this.id;  
 }); 

我想在控制器中接收的变量是 IdOfTag。我该怎么做?谢谢。

在我们的应用程序中,我们使用两种方法。

第一种方法

第一种方法是在 twig 中创建"配置"文件,该文件将包含在标头中的某个位置。此文件包含脚本中需要的所有 JS 变量。这些变量的这些值是从控制器传递的。然后在"参数"文件的树枝模板中,您只需将它们添加到适当的位置:

   <script>
       myObj.var = "{{ var_from_controller }}";
   </script>

第二种方法

另一种方法是将所需的变量放入 html 标记的其他自定义属性中。当我们需要采取某些路线时,我们通常会这样做。

   <p id="myDataHolder" data-src="{{ path('MyUserBundle_ajax_route') }}">blah</p>

然后,在你的JS中,你只需解析该标签的一个属性。

您可以使用 AJAX 传递变量(查看 $.ajax、$.post、$.get - jQuery),或者添加一个隐藏的输入字段以形成所需的值。

如果你想使用 jQuery.ajax 将IdOfTag传递给/path/controller/tags(例如),你的代码将如下所示:

$("MatchedTag").click(function () 
 {
       $(this).toggleClass("highlight");
       var IdOfTag = this.id;  
       $.ajax({
          url: "/path/controller/tags",
          type: "POST",
          data: { "tag_id" : idOfTag },
          success: function(data) {
             //(success) do something...
             //variable "data" contains data returned by the controller. 
          }
       });
});

然后在控制器中,您可以通过$_POST["tag_id"]获取idOfTag的值

好看并检查上面的链接。