2012-11-27 16 views
25

Yeni başlayanlar için symfony2'deki ajax hakkında basit bir eğitim/örnek formu arıyorum.Ajax Symfony2 ile nasıl bütünleştirilir

Nasıl

Ben bu örnekleri var bunlar bir Symfon içine konabilir y2 uygulaması?

+1

Ajax olmadan Entity/Form/Action/View oluşturmaya çalıştınız mı? – Ziumin

+0

evet, ben –

+0

göster (Symfony2'de birlikte) bu kod ile oluşturmak, ama cevap beni çok – Ziumin

cevap

105

Kolaydır. Symfony2'de 3 adımda bir AJAX çağrısının nasıl yapılacağını göstereceğim. Aşağıdaki örnekte jQuery kitaplığını kullanmayı varsayın.

  • AJAX çağrınızı yürütmesi gereken işlemin rotasını tanımlayın. Örneğin.

    AcmeHomeBundle_ajax_update_mydata: 
        pattern: /update/data/from/ajax/call 
        defaults: { _controller: AcmeHomeBundle:MyAjax:updateData } 
    
  • Home demetinden MyAjax denetleyicisi eylem. Örneğin.

    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();}); 
    }); 
    

    Sen çağıran diğer AJAX kullanarak örnek değiştirebilir .: senin Twig şablonda örneğin sizin AJAX çağrıyı hazırlayın.

+0

denetleyicisi yardımcı http://pastebin.com/sPJkhpbY yönlendirme http : //pastebin.com/mpb4X7CU ajax.js http://pastebin.com/tx70YNxz görünüm: http://pastebin.com/9DvVPYMJ Ben tarayıcısını açtığınızda sadece görmek : { "kod" : 100, "başarı": doğru} Tamamen acemi oldum –

+0

Bu js kodunu php olarak yazmamız gerektiği anlamına mı geliyor? – wilsonrufus

+1

@wilsonrufus ** NO! ** JS her zaman istemci tarafında, sunucu tarafında PHP'de çalıştırılır. Ajax kullanarak, tüm sayfayı tek bir çağrıyla istemci tarafında oluşturmazsınız. Bir URL için müşteri isteği. Sunucu ilk olarak ana PHP sayfasını resimlediğim JS koduyla döndürür. Ardından, tarayıcı yanıtı aldığında ve ana sayfayı yüklediğinde (ve sonunda belge hazır olduğunda), JS kodu yürütülür. JS kodu Symfony eylemine (benzersiz bir URL tarafından eşlenen) bir çağrı yapar ve JS tarafından işlenen sonucu bekler. – JeanValjean