2014-12-28 76 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

相关问题