2012-11-27 26 views
25

के साथ अजाक्स को एकीकृत करने के लिए कैसे मैं शुरुआती के लिए symfony2 में AJAX के बारे में सरल ट्यूटोरियल/उदाहरण देख रहा हूं?सिम्फनी 2

कैसे कर सकता है

मैं इन उदाहरणों है इन्हें एक सिम्फॉन में रखा जाना चाहिए वाई 2 ऐप?

+1

क्या आपने कोई AJAX के साथ इकाई/फॉर्म/एक्शन/व्यू बनाने की कोशिश की है? – Ziumin

+0

हाँ, मुझे कोई ajax –

+0

दिखाएँ इस कोड (Symfony2 के साथ) ajax के बिना साथ बनाने के लिए, कृपया – Ziumin

उत्तर

105

यह आसान है। मैं समझाऊंगा कि सिम्फनी 2 में 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)); 
    }  
    
  • उदा, अपने Twig टेम्पलेट में अपने AJAX कॉल तैयार .:

    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 कॉल का उपयोग करके उदाहरण बदल सकते हैं।

+0

नियंत्रक मदद की http://pastebin.com/sPJkhpbY मार्ग http : //pastebin.com/mpb4X7CU ajax.js http://pastebin.com/tx70YNxz दृश्य: http://pastebin.com/9DvVPYMJ जब मैं ब्राउज़र को खोलने मैं केवल देखें: { "कोड" : 100, "सफलता": सत्य} मैं पूरी तरह से शुरुआती –

+0

इसका मतलब है कि हमें जेएस कोड php में लिखना होगा ?? – wilsonrufus

+1

@ विल्सनरुफस ** नहीं! ** जेएस हमेशा क्लाइंट साइड पर सर्वर पर चलाया जाता है, PHP सर्वर पर। AJAX का उपयोग करके, आप पूरे पृष्ठ को क्लाइंट साइड पर एक कॉल में प्रस्तुत नहीं करते हैं। एक यूआरएल के लिए ग्राहक अनुरोध। सर्वर पहले जेएस कोड के साथ मुख्य PHP पृष्ठ लौटाता है जिसे मैंने सचित्र किया था। फिर, ब्राउज़र को प्रतिक्रिया मिलने और मुख्य पृष्ठ लोड करने के बाद (और अंततः दस्तावेज़ तैयार है), जेएस कोड निष्पादित किया जाता है। जेएस कोड एक सिम्फनी एक्शन (जो एक अद्वितीय यूआरएल द्वारा मैप किया गया है) को कॉल करता है और जेएस द्वारा संचालित परिणाम के लिए इंतजार कर रहा है। – JeanValjean