首先..您一直在引用的文档不是正确的路径。请参阅此文档
以下是在您的上下文中要遵循的基本步骤。
1) 在 ext_tables.php 中注册一个 ajax 调用
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerAjaxHandler (
'controllername::function_name',
'PITS\\PitsDownloadLogin\\Controller\\controllername->function_name'
);
上面提到的位于 'controller' 中的 'function_name' 定义了要在 ajax 调用中执行的逻辑。
2)定义您的ajax调用 <-这部分是您正在谈论的客户端
你肯定有一个脚本文件,我的意思是 JS 文件,其中编写了要触发 onclick 的函数。在您的情况下,在选择品牌的第一个栏的“onChange”中定义一个 js 函数。在这个函数中定义 ajax。
$.ajax({
type: 'GET',
url: TYPO3.settings.ajaxUrls['controllername::function_name'],
data: {
"page" : page,
"limit": limit,
},
现在将在相应控制器的“function_name”中收到以下参数。随心所欲地处理它。
3) 控制器存根
/**
* Renders the table as pagination occurs
*
* @param array $params Array of parameters from the AJAX interface, currently unused
* @param \TYPO3\CMS\Core\Http\AjaxRequestHandler $ajaxObj Object of type AjaxRequestHandler
* @return void
*/
public function function_name($params = array(), \TYPO3\CMS\Core\Http\AjaxRequestHandler &$ajaxObj = NULL) {
$limit = GeneralUtility::_GP('limit');
$page = GeneralUtility::_GP('page');
**** Code Processing ***
$result = result of whole processing
$ajaxObj->addContent('success', $result); // In JS 'success' is the final result passed from here
$ajaxObj->setContentFormat('json'); // Writing back as JSON array
}
在您的 JS 文件中,您可以通过以下方式决定其余部分,
success: function (success) {
console.log(success);
},
error: function (error) {
console.log(error);
}
我希望你偏离了正确的方向。快乐的编码伙伴。!
这个答案现在已被弃用。TYPO3 不再支持此功能。请改为参考 AjaxRoutes。这是一个更简单的方法。