Walter Neumann: Ersatz für history.back

Hallo Alle,
Hab eine Fehlerbehandlungsroutine für ein umfangreiches Programm in PHP. Die gibt eine Fehlermeldung aus und mit history.back konnte man zur ursprünglichen Seite zurückkehren. Jetzt hab ich in den textarea-Feldern einen HTML-Editor eingebaut, und als Folge funktioniert history.back nicht mehr. Wie kann ich von PHP aus zur ursprünglichen Seite zurückkehren und gleichzeitig die Formularfelder wiederherstellen. Den Seitenaufruf kann ich eventuell in einem verborgenen Feld abspeichern und mit $_REQUEST mir holen. Aber ich hab keine Ahnung an dieser Stelle, welche und wieviele Felder in dem Formular (oder auch in mehreren Formularen) existieren. Kann man von PHP aus einen javascript-Befehl ausführen (nicht mit echo, denn das löscht ja die jeweilige Seite)?
Danke für Ideen.
Walter.

  1. Hallihallo!

    Wie wäre es, wenn Du in Deinen Formularen ein zusätzliches hidden-Feld mit der URI der aktuellen Seite einbaust?
    Anschliessend gibt die Fehlerseite das gesamte Formular, beispielsweise hidden, wieder aus, mit der übermittelten URI als action- attribut im <form>- Tag.
    Der Submit- Button ist dann der "Zurück- Link".

    Dann müsstest Du nur noch eine Funktion basteln, die das ursprüngliche Formular wieder herstellt, falls POST- Daten vorhanden sind.

    Ich hoffe, ich habe Dein Problem richtig verstanden...

    Viele liebe Grüße,
    Der Dicki

  2. Hello,

    mehrseitige Formulare sind ganz gut ein einer Session aufgehoben.
    Allerdings sollte dann auch die Navigation ausschließlich über das Formular stattfinden

    Client    Seite aufrufen
       Serverr   Seite laden, Formulare mit defaults oder letzten Werten füttern
       Client    Seite mit Forular anzeigen, nächste Seite anfordern (POST)
       Server    Werte der verlassenen Seite aus dem Post in der Session sichern
                 neue Seite laden und Formulare bestücken

    usw.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

  3. Danke für eure guten Antworten. So kann ich es mir vorstellen. Was mir aber noch unklar ist: Wie kriege ich die Formulardaten wieder hinein. Gibt es da eine Möglichkeit in PHP oder muss das eine function in javascript sein? Wenn javascript, kann javascript auch auf die session zugreifen? Oder kann man auch das $_POST array in ein verborgenes Feld übergeben?
    Nochmals danke für eure Hilfe. Walter.

    1. Hallihallo!

      Das kannst Du mit PHP erledigen. Dein Skript, welches für das "normale" Formular zuständig ist, prüft einfach, ob POST- Daten vorhanden sind. Sind sie es, wird das Formular mit vorgegebenen Inhalten dargestellt.
      Sind keine POST- Daten vorhanden, wird das Formular einfach im "Rohzustand" dargestellt.
      Javascript ist dafür nicht nötig.

      Ich hoffe, das hilft Dir weiter…

      Viele liebe Grüße,
      Der Dicki

    2. Moin!

      Was mir aber noch unklar ist: Wie kriege ich die Formulardaten wieder hinein.

      Google mal nach "Affenformular", dann siehst du, wie man sowas normalerweise angeht.

      - Sven Rautenberg

      --
      My sssignature, my preciousssss!