1

我正在使用 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}" />

但是,为什么在其他站点中,我有完全相同的代码而没有我刚才提到的隐藏字段,并且它可以工作?

谢谢

4

1 回答 1

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;
})
于 2017-01-16T10:14:57.603 回答