获取表单始终重定向到主页

时间:2014-05-21 13:26:52

标签: forms typo3 typo3-6.2.x

我正在使用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&amp;tx_news_pi1%5Bcontroller%5D=News&amp;cHash=d4f1472e52ea8a990f34bb9ad93a3b9f">

我有一个小问题的解决方案,当我在其工作的形式中添加一个隐藏的字段ID时:

<input type="hidden" name="id" value="{settings.listPid}" />

但是,为了得到它,在其他网站中,我有完全相同的代码而没有我刚才提到的隐藏字段,它有效吗?

由于

1 个答案:

答案 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;
})