我在这样做时遇到了麻烦,我一直在寻找一些手册,但它们似乎对我不起作用(它们要么不够详细,要么我太愚蠢,可能两者兼而有之)。
所以我想通过某个事件从我的 Fluid View HTML 文件开始一个 AJAX 调用,然后它应该在某个控制器中执行操作并返回一些值(目前任何值都可以,我似乎无法得到当涉及到 Extbase 中的 AJAX 时,任何可以在这里工作的东西)。
没有细节我只能猜测你的问题是什么
首先也是最重要的事情是......使用 FireBug 检查 AJAX 调用的问题是什么。它可能只是错误的 URL(操作、控制器等),也可能是您的操作中的一些问题,它没有返回所需的输出。FireBug 将允许您检查它的堆叠位置。
但最有可能...
在将 JS/CSS 代码直接写入 Fluid 视图时要记住非常重要的事情,不幸的是,它几乎从未被提及:
Fluid 使用大括号表示字符串是一个变量:{someVar}
,因此如果您将 AJAX 或其他 JavaScript 函数放入 Fluid 模板,它很可能被视为 Fluid 变量。此示例粘贴到模板:
$.ajax({
url: "index.php"
data: "tx_myextension_plugin[controller]=MyController&tx_myextension_plugin[action]=getData&type=89657201"
success: function(result) {
alert(result);
}
});
将呈现为:
$.ajax(Array);
解决方案:
直接在模板中转义它很困难,因此将所有 JavaScript 保存到Resources/Public
扩展目录下的单独文件中肯定更容易,并将其包含在通用 HTML 标记中:
<script type="text/javascript" src="typo3conf/ext/yourext/Resources/Public/ajaxFunctions.js"></script>
$("#searchFach").change(function(){
$.ajax({
type: 'POST',
url:"fragen/controller/Question/searchQuestions",
data: {mainCategoryId:$("#searchFach").val()},
success: function(response) { $("#searchCategory").html(response);
},
});
});`