我正在尋找一個簡單的教程/關於symfony2中的ajax的例子,對於初學者?如何將Ajax與Symfony2集成
我有這方面的例子:
city.php:http://pastebin.com/Qm8LS5kh
ajax_req.js:http://pastebin.com/UqJMad24
的index.html:http://pastebin.com/H1err4Yh
哪有這些被放入Symfon中y2應用程序?
我正在尋找一個簡單的教程/關於symfony2中的ajax的例子,對於初學者?如何將Ajax與Symfony2集成
我有這方面的例子:
city.php:http://pastebin.com/Qm8LS5kh
ajax_req.js:http://pastebin.com/UqJMad24
的index.html:http://pastebin.com/H1err4Yh
哪有這些被放入Symfon中y2應用程序?
很簡單。 我將演示如何通過3個步驟在Symfony2中執行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));
}
準備好您的通話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調用改變的例子。
控制器 http://pastebin.com/sPJkhpbY 路由 HTTP ://pastebin.com/mpb4X7CU ajax.js http://pastebin.com/tx70YNxz 觀點: http://pastebin.com/9DvVPYMJ 當我打開瀏覽器,我只看到: { 「代碼」 :100,「success」:true} 我完全初學者 –
這意味着我們必須在php中寫js代碼? – wilsonrufus
@wilsonrufus **不!!JS總是在客戶端執行,PHP在服務器端執行。使用Ajax,您不會在一次調用中呈現客戶端的整個頁面。客戶端請求一個URL。服務器首先返回帶有我說明的JS代碼的主PHP頁面。然後,一旦瀏覽器收到響應並加載主頁面(最後文檔已準備好),JS代碼就會執行。 JS代碼調用Symfony操作(由唯一的URL映射)並等待JS處理的結果。 – JeanValjean
您是否嘗試過創建實體/表單/動作/視圖沒有Ajax? – Ziumin
是的,我創建一個沒有AJAX –
顯示驗證碼(與Symfony2的)沒有Ajax,請 – Ziumin