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