Geestarz: Form-Variablen ohne GET und POST an PHP übergeben

Guten Morgen!
Ich sitze hier vor einem kleinen Problem.
Auf meiner Seite befindet sich ein kleines Kontaktformular. Ich möchte dass nach einem Klick auf den Submit-Button sich ein PopUp öffnet in dem die Bestätigung dass die Daten verschickt wurden angezeigt wird. Dies habe ich bis jetzt mit der Funktion "javascript:windows.open()" realisiert. Das Problem ist nur dass das selbe Bestätigungsfenster im Hauptfenster auch geladen wird (kein Wunder - steht ja im Form unter dem Parameter "action") und im PopUp sind die Variablen aus dem Form leer (auch nicht verwunderlich da ich ja nicht weiß wie ich diese ohne "action" im PopUp an das PHP-Script übergeben soll). Kurz: Wie schaffe ich es dass das komplette PHP-Script in einem neuen PopUp-Fenster (ja PopUp - denn ich möchte die größe des Fenster definieren - den Trick mit target="_blank" bei den Form-Parametern kenne ich!) zu öffnen und die Variablen aus dem Form an dieses zu übergeben? Weiß hier jemand wie man das anstellt?

  1. Moin!

    Auf meiner Seite befindet sich ein kleines Kontaktformular. Ich möchte dass nach einem Klick auf den Submit-Button sich ein PopUp öffnet in dem die Bestätigung dass die Daten verschickt wurden angezeigt wird.

    Die übliche Vorgehensweise hast du schon selbst genannt: Formular-Actions können mit target in ein anderes Fenster/Frame/IFrame gerichtet werden.

    Dein Ziel muß es also sein, bevor die target-Angabe ein beliebiges neues Fenster öffnet, eines mit demselben Namen und definierten Eigenschaften per Javascript zu öffnen. Üblicherweise werden Javascripte, die im onsubmit-Eventhandler stehen, vor dem Abschicken des Formulars ausgeführt - das wäre also geeignet.

    Dies habe ich bis jetzt mit der Funktion "javascript:windows.open()" realisiert. Das Problem ist nur dass das selbe Bestätigungsfenster im Hauptfenster auch geladen wird (kein Wunder - steht ja im Form unter dem Parameter "action") und im PopUp sind die Variablen aus dem Form leer (auch nicht verwunderlich da ich ja nicht weiß wie ich diese ohne "action" im PopUp an das PHP-Script übergeben soll).

    Ich denke, deine angestrebte Lösung ist deshalb fragwürdig, weil die Formularbearbeitung das Hauptfenster unverändert läßt. Das ist nicht das, was ich von einer Formularseite erwarten würde. Es hindert mich nichts daran, das ausgefüllte Formular einfach erneut abzuschicken, wenn ich das Popup schließe. Im Archiv finden sich sehr viele Anfragen, die genau dieses verhindern wollen. Du solltest dir also noch irgendwas ausdenken, was im Formularfenster passiert. onsubmit kannst du dafür übrigens nicht nutzen, da das ausgefüllte Formular ja dann noch nicht abgeschickt ist.

    - Sven Rautenberg

    --
    "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
    1. Vielen Dank für den Hinweis! Ich habe ganz einfach mittels der onclick-Anweisung beim Submit-Button auf ein neues, zuvor mit JS definiertem Fenster verwiesen...in diesem wird dann das PHP-Script ausgeführt. Allerdings habe ich jetzt wirklich das Problem mit den Formulardaten...kann ich nicht noch irgendwo die Funktion "document.Formname.reset()" unterbringen?

      1. Moin!

        Vielen Dank für den Hinweis! Ich habe ganz einfach mittels der onclick-Anweisung beim Submit-Button auf ein neues, zuvor mit JS definiertem Fenster verwiesen...in diesem wird dann das PHP-Script ausgeführt. Allerdings habe ich jetzt wirklich das Problem mit den Formulardaten...kann ich nicht noch irgendwo die Funktion "document.Formname.reset()" unterbringen?

        Allerhöchstens im "onload" der Ergebnisseite (opener.document.form.reset())

        - Sven Rautenberg

        --
        "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
        1. Das mit "onload" klappt leider nicht aber ich bin so eigentlich schon glücklich. Vielen Dank für die Hilfe

      2. Moin!

        Ich habe ganz einfach mittels der onclick-Anweisung beim Submit-Button auf ein neues, zuvor mit JS definiertem Fenster verwiesen...

        Das ist übrigens eine schlechte Lösung. Im onsubmit ist es wirklich am besten aufgehoben. Denn dann wird das Fenster geöffnet, wenn das Formular (warum auch immer) abgeschickt wird - und nicht nur dann, wenn der Submit-Button geklickt wird. Man kann ein Formular durchaus auch mit anderen Methoden abschicken, als durch einen Klick auf diesen Button.

        - Sven Rautenberg

        --
        "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)