Zum Inhalt springen

Form submit geht nicht

Erstellt am 17. Oktober 2014 · 5 Antworten · letzte Antwort am 21. Oktober 2014

Tags: Frage

tom_meier ·

Hallo,

habe eine Extension gebaut die mehrere Selectfelder hat und einen Submit button.
im Tepmlate erzeuge ich den Form Tag so:

<f:form action="list" method="get" noCacheHash="true">

Auch noCache="true" bringt nichts.

Wenn ich nun aber auf den Submit button klicke, werde ich nicht zu der list Action weitergeleitet sondern er ruf die gleiche Seite auf. (index) Die List action ist auch in non-cacheable actions eingetragen. Hilft nix. Die list action ist im gleichen Controller.

Ausserdem werden die hidden Fields in der URL mit angezeigt. Ich weiss steht auf GET. Aber ist das normal? Kann ich das nur per RealUrl entfernen?

Danke für euere Hilfe

Tom

toifel ·

Versuch mal den Controller noch mit anzugeben:
<f:form action="list" controller="DeinController" method="get" noCacheHash="true">

Hidden-Felder werden bei GET immer als querystring angehängt - das ist Standard in HTML und lässt sich nicht umgehen (außer man nutzt POST) 😉

tom_meier ·

Hallo toifel,

hatte ich auch schon versucht. Geht auch nicht. Wenn ich allerdings aus dem Quellcode die Form Action Url kopiere und im Browser aufrufe, ruft er mir die list action auf. Nur fehlen mir dann natürlich die form parameter. Nur mit einem normalen submit geht es nicht.

Das mit den hiiden fields war mir klar, wollte nur sicherstellen, das es keinen Paramter gibt um dies zu unterbinden.

Tom

tom_meier ·

Hallo,

also:

      <div class="startform">
   <f:form name="index" id="indexform" action="list" controller="car" noCache="0" absolute="0"   noCacheHash="1"  method="get">


    <f:form.select  additionalAttributes="{onChange : 'this.form.submit();'}"  value="{request.brand}" class="start select" name="brand" options="{brand}"  optionLabelField="label" optionValueField="value"  prependOptionLabel="Marke wählen (alle)" prependOptionValue=""/>
    <f:form.select additionalAttributes="{onChange : 'this.form.submit();return false;'}" class="start select" name="baureihe" options="{baureihe}"  value="{request.baureihe}" optionLabelField="label" optionValueField="value"  prependOptionLabel="Modell wählen (alle)" prependOptionValue=""/>
zart}"  value="{request.fhzart}"  prependOptionLabel="Bauart (alle)" prependOptionValue=""/>


       <f:form.submit class="trefferbutton" name="search" value="Treffer Anzeigen ({count})" />
        </f:form>

Ich glaube aber das, es hier einen Bug gibt. Ich meine man müsste ein hidden Field mit der Action hinterlegen damit das richtig funktioniert.

VG
Tom

Unbekannter Benutzer ·

Also ich sehe beispielsweise nicht, dass du Argumente an deine Action übergibst.

Eventuell macht auch <form NAME="index"> dir Probleme, ich wüsste nicht, wofür man dem Form Tag ein name Attribut geben sollte.

Controller sind in der Regel Uppercase, aber keine Ahnung ob das hier ein Problem ist.

Vielleicht ist da was bei, was dir hilft. Ansonsten kannst du auch nochmal extensionName und pluginName ergänzen, falls du da mehrere PI's auf einer Seite hast.