2014-12-28 96 views
0

如何在Typo3後臺使用ajax調用我自己的擴展的控制器功能?Ajax調用TYPO3控制器功能

我想對我的存儲庫進行搜索。

例如:

我有一個輸入字段,我可以輸入名稱。然後,搜索功能應該在我的存儲庫中搜索這個名稱。

我的問題是如何設置ajax調用與控制器函數進行通信?

+0

究竟哪個部分有問題? – biesior

+0

的URL看起來應該像 '$阿賈克斯({ 類型: 「POST」, 網址:網址, 數據:數據, 成功:成功, 的dataType:數據類型 });' – Felix

回答

1

在後端模塊很簡單,只需在您的控制器註冊新的行動,即:nameAutocomplete(不要忘記添加到您的ext_tables.php允許的操作的列表中選擇此)

這樣你就可以創建適當的URL與視圖助手:

<script> 
    var MY_AJAX_ACTION_URL = '<f:uri.action action="nameAutocomplete" />'; 

    jQuery.ajax({ 
     type: 'POST', 
     url: MY_AJAX_ACTION_URL 
    }); 

</script> 

樣品行動是相當直接也就是說,如果你需要JSON輸出,可以直接做到這一點:

public function nameAutocompleteAction() { 
    $out = array('status' => 'I am alive'); 

    // Process your POSt data here 

    header('Content-Type: application/json'); 
    return json_encode($out); 
} 

注意:您需要使用viewhelper在創建時創建正確的URL,即模塊的標記和其他特定部分。

+0

,看起來真的容易...謝謝!我嘗試它! – Felix

+1

是的,工作正常,但無法讀取我的發佈數據。 我這樣做:'jQuery.ajax({ 類型: 'POST', 網址:MY_AJAX_ACTION_URL, 數據: 「nextInterval」 });'但是我不能讓在後端數據。我試過這個:'$ this-> request-> hasArgument('nextInterval')' – Felix

相關問題