web-dev-qa-db-ja.com

AjaxとSymfony2を統合する方法

私は初心者向けにsymfony2のajaxに関する簡単なチュートリアル/例を探していますか?

私はこれらの例を持っています:

これらをSymfony2アプリにどのように入れることができますか?

25
Thomas Shelby

容易いものだ。 Symfony2での3つの手順でAJAXを呼び出す方法を説明します。次の例では、jQueryライブラリを使用することを想定しています。

  • AJAX呼び出しを処理する必要があるアクションのルートを定義します。

    AcmeHomeBundle_ajax_update_mydata:
      pattern:  /update/data/from/ajax/call
      defaults: { _controller: AcmeHomeBundle:MyAjax:updateData }
    
  • MyAjaxバンドルのHomeコントローラーでアクションを定義します。例えば。

    public function updateDataAction(){
      $request = $this->container->get('request');        
      $data1 = $request->query->get('data1');
      $data2 = $request->query->get('data2');
      ...
      //handle data
      ...
      //prepare the response, e.g.
      $response = array("code" => 100, "success" => true);
      //you can return result as JSON
      return new Response(json_encode($response)); 
    }      
    
  • AJAXテンプレートでTwig呼び出しを準備します。例:

    function aButtonPressed(){
        $.post('{{path('AcmeHomeBundle_ajax_update_mydata')}}',               
                    {data1: 'mydata1', data2:'mydata2'}, 
                function(response){
                        if(response.code == 100 && response.success){//dummy check
                          //do something
                        }
    
        }, "json");    
    }
    
    $(document).ready(function() {     
      $('button').on('click', function(){aButtonPressed();});
    });
    

    他のAJAX呼び出しを使用して、例を変更できます。

104
JeanValjean