2012-04-15 8 views
2

ich eine ziemlich fortgeschrittene Form haben, die Beiträge auf eine Übersichtsseite: enter image description hereWie die Zurück-Taste aktivieren, wenn ein Formular abgeschickt wurde

der Vorschauseite, die erreicht wird, wenn weiterhin wie folgt aussieht enter image description here

gedrückt

Jetzt möchte ich die Schaltfläche "zurück und bearbeiten Anzeige" implementieren, aber nur Javascript-Geschichte -1 hat es nicht getan, da die Formularfelder nicht in Erinnerung sind. Ich schreibe die Felder in den Datenspeicher, wenn ich eine Vorschau mache, und wenn der Benutzer zurückgeht, kann es ein komplett neues Senden mit einer neuen ID sein und die alte Entität wird nicht veröffentlicht, da sie die Variable submitted = false oder ähnlich hat.

Jetzt konnte ich die Zurück-Schaltfläche nicht mit Javascript aktivieren, haben Sie eine Idee, wie ich meine Schaltfläche "Zurück und Anzeige bearbeiten" implementieren kann?

Ich verwende wtforms, jinja2 Vorlagen und webapp2.

+0

gibt es eine Submit beim Klicken auf weiter von "Erstellen" bis "Vorschau" ?? – nandu

+0

@nandu Ja, es gibt eine Übergabe vom Erstellungsschritt, der in den Datenspeicher schreibt. Ich könnte wie der Fall der Bearbeitung der Anzeige neu bevölkern und nicht ein neues für die nächste Übermittlung erstellen, wenn der Benutzer zurückgeht, aber das wäre eine Menge überflüssiger Arbeit. –

Antwort

1

Fügen Sie Ihrem Ad-Datenspeichermodell ein "Entwurf" -Flag hinzu. Wenn das Formular gesendet wurde, erstellen Sie den Datensatz mit dem Entwurfsflag als True und lassen Sie die Schaltfläche "Anzeige bearbeiten" mit dem Formular mit dem Schlüssel als GET-Variable verknüpfen. Füllen Sie das Formular mit den Daten aus dem Entwurf des Datensatzes und dem Zeitpunkt, zu dem der Nutzer auf "Post Ad; Setzen Sie das Flag "Entwurf" auf "Falsch".

Dies hat den zusätzlichen Vorteil, dass Sie einen Mechanismus erhalten, mit dem Ihre Benutzer ihren Arbeitsablauf von einer alten Sitzung aus fortsetzen können, wenn sie beispielsweise versehentlich ihren Browser schließen.