我正在使用TYPO3 6.2.0。 我创建了一个表单搜索新闻,这里是代码:
<f:form object="{search}" name="search" pageUid="{settings.listPid}" method="get">
<fieldset>
<label for="recherche" class="hors-champ">{f:translate(key:'search-texte-label')}</label>
<f:form.textfield property="subject" class="text-search" id="recherche"/>
<label for="recherche" class="hors-champ">{f:translate(key:'search-Categorie-label')}</label>
<f:cObject typoscriptObjectPath="lib.bouton_select_news" />
<span></span>
<f:form.submit value="{f:translate(key:'search-start')}" class="bt-search"/>
</fieldset>
</f:form>
问题在于,每次执行表单时,我都被重定向到主页,即使表单的操作包含良好的值:
<form method="get" name="search" action="index.php?id=56&tx_news_pi1%5Bcontroller%5D=News&cHash=d4f1472e52ea8a990f34bb9ad93a3b9f">
我有一个小问题的解决方案,当我在其工作的形式中添加一个隐藏的字段ID时:
<input type="hidden" name="id" value="{settings.listPid}" />
但是,为了得到它,在其他网站中,我有完全相同的代码而没有我刚才提到的隐藏字段,它有效吗?
由于
答案 0 :(得分:0)
我们在工作中遇到了类似的问题,我们使用JS解决了这个问题。
我们的表单在使用POST作为方法时效果很好,但在我们使用GET时将我们重定向到主页。 我们的表格看起来像这样
<f:form pageUid="your_pageUid" method="get" action="your_action" controller="your_controller" extensionName="your_extension" noCacheHash="true" pluginName="your_plugin" name="newSearch" object="{newSearch}" id="your_id">
并且只包含一个文本字段 和一个按钮
接下来,JS会在发送之前捕获表单并将用户重定向到搜索:$('#your_form_id').submit(function(e) {
e.preventDefault();
var input = $(this).find('your_inputfield_id');
var uri = $(this).attr('action');
uri += '&' + input.attr('name') + '=' + input.val();
window.location.href = uri;
})