\Templates\Snippets\Search.html
<f:form id="snippetSearchForm"
action="search"
controller="Snippets"
extensionName="snippet_highlight_syntax"
pluginName="feshs"
name="searchSnippets"
method="POST"
pageType="5513">
<f:form.textfield class="form-control" property="searchWords"/>
<f:form.submit id="searchBtn" value="Search"/>
</f:form>
SnippetsController.php
public function searchAction()
{
$arguments = $this->request->getArguments();
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($arguments);
}
ajax.js
$("#snippetSearchForm").submit(function (event) {
event.preventDefault();
var form = $(this);
var action = form.attr("action"),
method = form.attr("method"),
data = form.serialize();
$.ajax({
url: action,
type: method,
data: data,
cache: false
}).done(function (data) {
console.log(data);
}).fail(function () {
( "div.tx-feshs" ).replaceWith("errorMessage");
}).always(function () {
});
});
请求URL
index.php?id=148&type=5513&tx_snippet_highlight_syntax_feshs[action]=search&tx_snippet_highlight_syntax_feshs[controller]=Snippets&cHash=4662b6b5a3fa0dc4e590e8d5c90fa
我不能用getArguments()
解决这个问题。response和console.log为(空)。似乎我遗漏了什么,但我不能确定在哪里:/
发布于 2018-06-22 21:14:37
$this->request->getArguments()
将只返回以扩展/插件标识符为前缀的字段值参数,如tx_anything_pi1anything请检查字段的“-tag”名称是否正确。也许这些标签是错误的,因为你在你的文本字段中引用了一个对象的“属性”,但是没有对象绑定到你的f:form标签。
由于响应至少应返回空调试的HTML,因此您的操作可能有问题。你能在浏览器中调用它吗?
发布于 2018-06-22 21:21:50
假设您的扩展密钥(=foldername)为"snippet_highlight_syntax“,URL的参数通常如下所示:
tx_snippethighlightsyntax_feshs
这意味着扩展键的所有下划线都将被删除。
也许可以让它不同,但这不是标准的。
因此,$this->request->getArguments()
从不返回任何内容。
您必须像这样调整url中的参数:
index.php?id=148&type=5513&tx_snippethighlightsyntax_feshs[action]=search&tx_snippethighlightsyntax_feshs[controller]=Snippets&cHash=4662b6b5a3fa0dc4e590e8d5c90fa
在TypoScript-Object-Browser中,您应该可以找到具有该名称的插件:
plugin.tx_snippethighlightsyntax_feshs
发布于 2018-06-23 00:54:12
经过多次尝试,我已经将该扩展发送到另一台计算机上进行测试,并且它正在工作。
我已经清除了所有的缓存,禁用/启用,等等。似乎是我的环境出了问题。
感谢你们所有人的帮助!
https://stackoverflow.com/questions/50988396
复制相似问题