Rolf B: Action-Attribut in <form> vor dem Posten ändern

Beitrag lesen

Hallo RR,

was du bräuchtest, wäre eine Festlegung des Übertragungsweges pro Form-Element. Also GET-Parameter für das select-Element und POST-Parameter für andere.

Es gibt zwar ein formmethod-Attribut, das man auf Form-Elementen setzen kann, aber das ist nur dafür gedacht, auf einem Submit-Button das method-Attribut des Form zu überschreiben. Man kann damit nicht pro Form-Element festlegen, ob es als Content oder in der URL gesendet werden soll.

Es ist ohnehin angebracht, bei einen POST-Request die Daten zwar serverseitig zu verarbeiten, aber dann mit einem Redirect auf die Seite zu antworten, die das Ergebnis anzeigt. Eine direkte Anzeige des Ergebnisses ist keine gute Praxis. Und zwar deshalb, weil der Anwender sonst zu schnell mit dem "Zurück" Button des Browsers auf das Formular zurückkommen und ggf. doppelt senden kann. Beim Erzeugen dieses Redirects kannst Du dann, so wie schon vorgeschlagen, die URL nach Bedarf aufhübschen.

Die Alternative ist JavaScript. Du müsstest den Wert des Select-Elements in den Action-Parameter übertragen, wenn das Element sich ändert. Das ist relativ trivial zu machen, aber ich denke, es ist nicht der ideale Weg.

Rolf

--
sumpsi - posui - obstruxi