gpt4 book ai didi

ajax - 后端扩展中的 TYPO3 Ajax

转载 作者:行者123 更新时间:2023-12-02 15:12:20 26 4
gpt4 key购买 nike

我一直在寻找一种在 TYPO3 扩展中使用某些 AJAX 功能的方法。

我想在我的扩展“汽车”中选择 2 个字段 - 品牌和型号(型号链接到数据库中的汽车):

table 品牌:

  • uid

  • 标签

表格模型:

  • uid

  • 标签

  • 品牌(来自品牌表的uid)

在后端,当我创建新的“汽车”时,首先我选择一个品牌。然后我希望型号字段自动更新并显示包含该所选品牌的所有型号的列表

我找到了doc但我不知道如何与客户端打交道。我必须在哪个文件中添加以下行,以及 JavaScript 的位置:

$this->doc->loadJavascriptLib('contrib/prototype/prototype.js');
$this->doc->loadJavascriptLib('js/common.js');

最佳答案

首先..您所引用的文档不是正确的路径。请看这个documentation

以下是根据您的情况应遵循的基本步骤。

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,
},

现在,相应 Controller 的“function_name”中将收到以下参数。按照您的意愿处理它。

3) Controller stub

/**
* 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);
}

我希望你偏离了正确的方向..快乐的编码伙伴。 !

This answer is now deprecated. TYPO3 no more supports this functionality. Please refer to AjaxRoutes instead. Which is a much easier method.

关于ajax - 后端扩展中的 TYPO3 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com