2012-03-01 36 views
2

我對symfony2非常陌生,當用戶單擊div時,我遇到了一些使用ajax加載視圖的問題。使用螢火蟲我可以看到數據被返回,但我無法在頁面中追加結果。使用ajax加載視圖symfony2

我的代碼:// 默認控制器

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#框中。存在於index.html.twig DIV#箱

謝謝大家提前

+0

你爲什麼要這麼做$請求= $請求 - > Request()方法?$請求已經被設置 – Cerad 2012-03-01 15:50:12

+0

謝謝,我還有點困惑我需要閱讀文檔,更加註意細節 – rpa 2012-03-02 01:56:31

回答

2

我沒有得到你期待治療AJAX調用。試試這個:

if($request->isXmlHttpRequest()){ 
    return $this->forward('PaginationBundle:Default:ajax'); 
} 

控制器:: forward()方法已經返回一個Response對象;)

+0

這種方式更好,我可以得到更少,更清晰的代碼。非常感謝 !我試過像這樣:$ this-> render('PaginationBundle:Default:page.html.twig');並且運作良好。 – rpa 2012-03-02 01:54:08

4

這有什麼做用symfony但你的Ajax選項。 Pece是正確的:你可以直接使用§this-> forward的返回,因爲它是一個Response對象。

問題在於你的ajax選項。你必須在你的內部函數中傳遞數據對象,否則數據就是空的。試試這個:

success: function(data){ 
    $("div#box").append(data);  
} 
+0

你是對的!非常感謝,這是我的分心。 – rpa 2012-03-02 01:53:26

6

在你 $(「#DIV目標」)點擊(函數(事件)事件沒有指定在Ajax調用的URL參數,還有一件事是必須指定一個參數。 '成功' 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);  
     } 
    }); 
    }); 

這有助於... 快樂編碼

+0

你是對的!非常感謝,這是我的分心。 – rpa 2012-03-02 01:53:42