Zum Inhalt springen

Formular mit get lädt nach Submit immer Startseite

Erstellt am 18. Februar 2015 · 5 Antworten · letzte Antwort am 5. April 2017

Tags: URLs & Routing, Frage

tom_meier ·

Hallo,

habe ein Formualr in einer Extension das mit ein paas Select Felder bestückt ist. Wenn ich allerdings auf Submit klicke werde ich immer auf die Startseite geleitet:

<f:form name="indexform" id="indexform" action="index" controller="Car" noCache="0" absolute="1" noCacheHash="1" method="GET">

Die Formularseite hat die ID 56. Dies steht auch in der Action drin. Mit Firebug sehe ich, das ein 307 Temporary Redirect gemacht wird. ???? Wo kommt der her?

Mache ich aus GET POST geht es. Ich möchte allerdings GET verwenden.

Auf meinem lokalen Testsystem läuft alles komischerweise. Evtl. PHP Einstellung?

Hat jemand eine Tipp für mich?

Tom

Habe weitere Infos:

Beim Submit wird die ID der Seite verschluckt. Diese kommt nicht mehr in den Get Vars vor. Deshalb komme ich auf die Startseite. Aber warum verschluckt TYPO3 die ID der Seite?

GET /index.php?tx_hxportal_treelist%5B__referrer%5D%5B%40extension%5D=Hxportal&tx_hxportal_treelist%5B__referrer.....

hinter index.php? <- fehlt die ID der Seite??? Die ist aber im Form angeben:

<form method="get" id="indexform" action="http://www.domain.de/index.php?id=56&amp;no_cache=1&amp;tx_hxportal_rtreelist%5B......

harald1972 ·

Hallo,

afaik sollte <f:form ... action="index" controller="Car" ...> die Methode
CarController->indexAction() aufrufen.
Wenn es die nicht gibt, wird die erste Action aus der ext_localconf.php aufgerufen.

index klingt allerdings selbst schon schwer nach Startseite.

VA_Frank ·

wir hatten das selbe Problem auf der Arbeit und haben es schlussendlich mit Javascript gelöst

Wir haben ein Formular <f:form pageUid="your_page_id" method="get" action="your_action" controller="your_controller" extensionName="your_extension" noCacheHash="true" pluginName="your_plugin" name="newSearch" object="{newSearch}" id="your_id">

In diesem Formular gibt es lediglich ein <f:form.texfield> und einen Submit-button

Abgefangen und weitergeleitet wird über folgendes JS

$('#your_form_id').submit(function(e) {
      e.preventDefault();
      var input = $(this).find('your_input_field_id');
      var uri = $(this).attr('action');
      uri += '&' + input.attr('name') + '=' + input.val();      
      window.location.href = uri;
    })

Hoffe das kann anderen mit dem selben Problem helfen 🙂

Nasenbluten ·

Hatte das gleiche Problem.
Und wenn ich das richtig lese, handelt es sich hierbei nicht um ein Bug sondern um ein Feature. (https://forge.typo3.org/issues/27415)

Ich glaube ein hidden Feld "id" mit der Seiten ID wäre hier die bessere Lösung.

So hatte ich es auch gelöst, was in der 7.6 sehr gut funktioniert hat. (<input name="id" value="5" type="hidden">) Nachdem ich heute auf 8.7 geupdatet habe funktioniert diese Variante nicht mehr, da nun foglende Fehlermeldung geworfen wird:

"Page Not Found
Reason: Request parameters could not be validated (&cHash empty)"

Weiß jemand eine gute Lösung für 8.7?