簡體   English   中英

Symfony2控制器和Javascript參數傳遞

[英]Symfony2 controller and Javascript argument passing

我正在使用symfony2開發應用程序。 我想知道如何從控制器中的模板接收參數,因為我想將參數的值存儲在數據庫中。 參數將在模板內的JavaScript腳本中獲取其值,並且在提交按鈕時必須將其傳遞給控制器​​。 這是腳本:

$("MatchedTag").click(function () 
 {
       $(this).toggleClass("highlight");

       var IdOfTag = this.id;  

 }); 

我要在控制器中接收的變量是IdOfTag。 我怎樣才能做到這一點? 謝謝。

在我們的應用程序中,我們使用兩種方法。

第一種方法

第一種方法是在樹枝中創建“配置”文件,該文件將包含在標頭中的某個位置。 該文件包含腳本中需要的所有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的值

外觀不錯,請檢查上面的鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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