Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c2aaf253

Von Moritz Bunkus vor etwa 7 Jahren hinzugefügt

  • ID c2aaf253649281fee8e79a3300d81c827d9a1fd1
  • Vorgänger 87e1fb0d
  • Nachfolger ef26fcde

ActionBar: existierende Inputs namens »action« vor Submit entfernen

Wenn man zuerst druckt und dabei »action« auf z.B. »print« gesetzt wird,
so wird anschließend das PDF heruntergeladen. Allerdings verbleibt die
»action=print« in der Form.

Wenn dann anschließend einer der Menüpunkte angeklickt wird,
z.B. »Erneuern«, so wurde nur ein weiterer Hidden namens
»action_update=1« ergänzt und die Form abgeschickt. Da aber
»action=print« weiterhin gilt (und nicht »action=dispatch«), wird
weiterhin das Drucken ausgeführt und nicht das Erneuern.

Ähnlich sähe es aus, wenn beim Drucken nicht »action=print« sondern
»action_print=1« hinzugefügt wird. Auch dann würde beim Erneuern
»action_update=1« hinzugefügt, und schon hätte man zwei
»action_…«-Einträge in der Form. Dann käme es darauf an, in welcher
Reihenfolge die »sub dispatch« die gesetzten Actions überprüft.

Generell ist das Problem bei jedem Submit via JavaScript, dass die
auszuführende Action irgendwie gesetzt werden muss, und dass man sich
andererseits auch nicht darauf verlassen kann, dass »action=dispatch«
gilt.

Die einzig zuverlässige Variante ist:

1. den Dispatcher-Mechanismus von bin/mozilla gar nicht benutzen, weil
sich der darauf verlässt, dass »action=dispatch« gilt,
2. zuerst dafür zu sorgen, dass in der Form keine Input mit Namen
»action« vorhanden ist und
3. anschließend einen Input mit Namen »action=gewünschte Action«
hinzuzufügen.

Das ist genau das, was dieser Commit implementiert.

  • hinzugefügt
  • geändert
  • kopiert
  • umbenannt
  • gelöscht