2012-11-27 3 views
25

초보자를위한 심포니 2에서 ajax에 대한 간단한 튜토리얼/예제를 찾고 있습니다?Ajax와 Symfony2를 통합하는 방법

어떻게

나는이 예제를 가지고 이것들을 Symfon에 넣을 수 있습니다. y2 앱?

+1

아약스없이 엔티티/폼/액션/뷰를 만들려고 했습니까? – Ziumin

+0

그래, 난 –

+0

쇼 (Symfony2 포함)이 코드를 만들지 만, 대답은 나에게 많은 – Ziumin

답변

105

쉽습니다. Symfony2에서 3 단계로 AJAX 호출하는 법을 설명하겠습니다. 다음 예제에서는 jQuery 라이브러리를 사용한다고 가정합니다.

  • AJAX 호출을 처리해야하는 작업의 경로를 정의하십시오. 예 :

    AcmeHomeBundle_ajax_update_mydata: 
        pattern: /update/data/from/ajax/call 
        defaults: { _controller: AcmeHomeBundle:MyAjax:updateData } 
    
  • Home 번들로부터 MyAjax 제어기의 동작을 정의한다. 예 :

    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)); 
    }  
    
  • 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를 사용하여 예를 변경할 수 있습니다 : 당신의 Twig 템플릿 예컨대 당신의 AJAX 전화를 준비합니다.

+0

컨트롤러 도움 http://pastebin.com/sPJkhpbY 라우팅 HTTP : //pastebin.com/mpb4X7CU 은 ajax.js http://pastebin.com/tx70YNxz 보기 : http://pastebin.com/9DvVPYMJ 나는 브라우저를 열 때 나는 단지 참조 : { "코드" : 100, "success": true} 완전히 초보자 –

+0

이것은 PHP에서 js 코드를 작성해야한다는 것을 의미합니까 ?? – wilsonrufus

+1

@wilsonrufus ** NO! ** JS는 항상 클라이언트 측에서 실행되며 PHP는 서버 측에서 실행됩니다. ajax를 사용하면 한 번의 호출로 클라이언트 쪽에서 전체 페이지를 렌더링하지 않아도됩니다. 클라이언트가 URL을 요청합니다. 서버는 먼저 내가 설명한 JS 코드가있는 PHP 페이지를 반환합니다. 그런 다음 브라우저가 응답을 받고 기본 페이지를로드하면 (그리고 마지막으로 문서가 준비 됨) JS 코드가 실행됩니다. JS 코드는 Symfony 액션 (고유 한 URL로 매핑 됨)을 호출하고 JS가 처리하는 결과를 기다립니다. – JeanValjean