Javascript 使用ajax symfony2加载视图
我对symfony2非常陌生,当用户单击div时,我在使用ajax加载视图时遇到了一些问题。使用firebug,我可以看到返回的数据,但我无法将结果附加到页面中 我的代码: //默认控制器Javascript 使用ajax symfony2加载视图,javascript,jquery,Javascript,Jquery,我对symfony2非常陌生,当用户单击div时,我在使用ajax加载视图时遇到了一些问题。使用firebug,我可以看到返回的数据,但我无法将结果附加到页面中 我的代码: //默认控制器 public function indexAction($num, Request $request) { $request = $this->getRequest(); if($request->isXmlHttpRequest()){
public function indexAction($num, Request $request)
{
$request = $this->getRequest();
if($request->isXmlHttpRequest()){
$content = $this->forward('PaginationBundle:Default:ajax');
$res = new Response($content);
return $res;
}
return $this->render('PaginationBundle:Default:index.html.twig', array('num' => $num));
}
public function ajaxAction()
{
return $this->render('PaginationBundle:Default:page.html.twig');
}
}
我的Js:
单击#target时,我想在我的div中加载page.html.twig
$("div#target").click(function(event){
t = t +1;
$.ajax({
type: "POST",
cache: "false",
dataType: "html",
success: function(){
$("div#box").append(data);
}
});
});
我在控制器中使用isXmlHttpRequest()来检测是否是加载ajaxAction的ajax请求。我得到了firebug的观点,但它没有附加在我的div#box中。div#框存在于index.html.twig中
提前谢谢大家我不想让你接这个电话。试试这个:
if($request->isXmlHttpRequest()){
return $this->forward('PaginationBundle:Default:ajax');
}
Controller::forward()已返回响应对象;) 这与symfony无关,而是与您的ajax选项有关。但是Pece是正确的:您可以直接使用来自§this->forward的返回,因为它是一个响应对象 问题在于ajax选项。必须在内部函数中传递数据对象,否则数据就是空的。试试这个:
success: function(data){
$("div#box").append(data);
}
在你的
$(“div#target”)。单击(function(event)event在ajax调用中没有指定url参数,另一件事是必须在“success”中指定参数
ajax调用的参数
$("div#target").click(function(event){
t = t +1;
$.ajax({
type: "POST",
url: "{{path('yourpath-means header name in routing.yml')}}",
cache: "false",
dataType: "html",
success: function(result){
$("div#box").append(result);
}
});
});
希望这有助于。。。
快乐编码你为什么要做$request=$request->getRequest()?$request已经设置好了。谢谢,我还有些困惑,我需要阅读文档时更多地关注细节。这种方式更好,我可以得到更少更清晰的代码。非常感谢!我尝试过这样:$this->render('PaginationBundle:Default:page.html.twig'));效果良好。