Javascript 使用ajax symfony2加载视图

Javascript 使用ajax symfony2加载视图,javascript,jquery,Javascript,Jquery,我对symfony2非常陌生,当用户单击div时,我在使用ajax加载视图时遇到了一些问题。使用firebug,我可以看到返回的数据,但我无法将结果附加到页面中 我的代码: //默认控制器 public function indexAction($num, Request $request) { $request = $this->getRequest(); if($request->isXmlHttpRequest()){

我对symfony2非常陌生,当用户单击div时,我在使用ajax加载视图时遇到了一些问题。使用firebug,我可以看到返回的数据,但我无法将结果附加到页面中

我的代码: //默认控制器

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'));效果良好。