Thật dễ dàng. Tôi sẽ minh họa cách thực hiện cuộc gọi AJAX trong Symfony2 qua 3 bước. Đối với ví dụ sau, giả sử sử dụng thư viện jQuery.
Xác định tuyến đường cho hành động phải xử lý cuộc gọi AJAX của bạn. Ví dụ.
AcmeHomeBundle_ajax_update_mydata:
pattern: /update/data/from/ajax/call
defaults: { _controller: AcmeHomeBundle:MyAjax:updateData }
Xác định hành động trong bộ điều khiển MyAjax
từ Home
bó. Ví dụ.
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));
}
Chuẩn bị AJAX
cuộc gọi của bạn trong mẫu Twig
của bạn, ví dụ .:
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();});
});
Bạn có thể thay đổi ví dụ bằng cách sử dụng AJAX khác gọi.
Bạn đã cố tạo Entity/Form/Action/View không có ajax chưa? – Ziumin
có, tôi tạo ra không có ajax –
Hiện mã này (với Symfony2) mà không ajax, xin vui lòng – Ziumin