我正在寻找一个简单的教程/关于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