1

symfony2 を使用してアプリケーションを開発しています。引数の値をデータベースに保存したいので、コントローラーでテンプレートから引数を受け取る方法を知りたいです。引数は、テンプレート内の JavaScript スクリプトで値を取得し、ボタンを送信するときにコントローラーに渡す必要があります。これはスクリプトです:

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

       var IdOfTag = this.id;  

 }); 

コントローラーで受け取りたい変数は IdOfTag です。これどうやってするの?ありがとう。

4

2 に答える 2

4

私たちのアプリケーションでは、2 つのアプローチを使用します。

最初のアプローチ

最初のアプローチは、ヘッダーのどこかに含まれる「構成」ファイルを小枝に作成することです。このファイルには、スクリプトで必要なすべての JS 変数が含まれています。これらの変数のこれらの値は、コントローラから渡されます。次に、「パラメーター」ファイルの小枝テンプレートで、適切な場所に追加するだけです。

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

2 番目のアプローチ

もう 1 つの方法は、必要な変数を html タグの追加のカスタム属性に入れることです。私たちは通常、特定のルートを取る必要があるときにそれを行います。

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

次に、JS でそのタグの属性を解析するだけです。

于 2012-07-12T07:46:58.437 に答える
1

AJAX ( $.ajax$.post$.get - jQuery を参照) を使用して変数を渡すか、非表示の入力フィールドをフォームに追加して目的の値を入力できます。

IdOfTagjQuery.ajax を使用して(例として)に渡したい場合/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. 
          }
       });
});

次に、コントローラーで値を取得できidOfTagます$_POST["tag_id"]

よく見て、上記のリンクを確認してください。

于 2012-05-12T19:08:11.200 に答える