Marcus Schwarz: Formular-Problem

Hallo !

Ich habe ein kleines Problem mit einem Formular. Gibt es die Möglichkeit, auch bei Formularen, die nicht auf CGI basieren, also per E-Mail versendet werden, ebenfalls nach erfolgreichem Versenden eine andere Seite zu öffnen, ohne das ein zweites Fenster geöffnet wird?

Gruß

Marcus
ICQ: 14100735

  1. Hallo Marcus,

    Gibt es die Möglichkeit, auch bei Formularen, die nicht auf CGI basieren, also per E-Mail versendet werden, ebenfalls nach erfolgreichem Versenden eine andere Seite zu öffnen

    Es gibt meines Wissens leider keine Moeglichkeit, in JavaScript abzufragen, ob nach dem Submitten eines mailto-Formulars eine Server-Antwort erfolgt ist. Es muesste dazu so was wie einen onSendmail-Event-Handler geben, der es erlauben wuerde, abhaengig vom Erfolg des Versands eine Aktion in JavaScript auszufuehren, zum Beispiel das Oeffnen einer "Dank-Seite". Einen solchen Handler gibt's aber nicht.
    Man kann zwar versuchen, mit Trickserei etwas zu bewirken, zum Beispiel, nach einem an den Submit-Button gebundenen ausreichenden Timeout, z.B. nach 10 Sekunden, automatisch eine andere Seite zu laden, aber das ist sehr vage, funktioniert nicht immer und ist keine "echte" Bestaetigungsseite.

    Viele Gruesse
      Stefan Muenz

    1. Hallo Marcus,

      Man kann zwar versuchen, mit Trickserei etwas zu bewirken, zum Beispiel, nach einem an den Submit-Button gebundenen ausreichenden Timeout, z.B. nach 10 Sekunden, automatisch eine andere Seite zu laden, aber das ist sehr vage, funktioniert nicht immer und ist keine "echte" Bestaetigungsseite.

      Stimmt, das funktioniert nur, wenn der Anwender schnell genug ist. Sollte er nach dem Timeout immer noch das Bestätigungsfenster zum Versenden der E-Mail offen haben, funktioniert es nicht. Gibt es aber vielleicht die Möglichkeit, zwei aufeinanderfolgende Funktionen mit dem Event onSubmit() zu übergeben, so dass z.B. nach einer Adressüberprüfung seperat ein weiteres Fenster geöffnet werden kann, also ohne dass ich die Funktionen irgendwie verbinden muss?

      1. Hallo Marcus,

        Man kann zwar versuchen, mit Trickserei etwas zu bewirken, zum Beispiel, nach einem an den Submit-Button gebundenen ausreichenden Timeout, z.B. nach 10 Sekunden, automatisch eine andere Seite zu laden, aber das ist sehr vage, funktioniert nicht immer und ist keine "echte" Bestaetigungsseite.

        Stimmt, das funktioniert nur, wenn der Anwender schnell genug ist. Sollte er nach dem Timeout immer noch das Bestätigungsfenster zum Versenden der E-Mail offen haben, funktioniert es nicht.

        Hm, das, was Du damit meinst, das verstehe ich nicht.
        Aber trotzdem habe ich den Eindruck, es ist nicht das, was Stefan sagen wollte.
        Das Timeout ist notwendig _vor_ dem Laden der "Bestaetigungs-Seite". Sonst kann es naemlich passieren, dass der Link schneller als die eigentlich Aktion, d.h. submit gar nicht wirklich zum Zuge kommt.
        Und eine Bestaetigung fuer das Absenden ist so eine mit Verzoegerung angezeigte Seite auch nicht wirklich. Die bestaetigt doch nur, dass SUBMIT gedrueckt wurde, nicht mehr.

        Gibt es aber vielleicht die Möglichkeit, zwei aufeinanderfolgende Funktionen mit dem Event onSubmit() zu übergeben, so dass z.B. nach einer Adressüberprüfung seperat ein weiteres Fenster geöffnet werden kann, also ohne dass ich die Funktionen irgendwie verbinden muss?

        Wenn Du das nach dem oben Gesagten noch immer willst:
        Hm, was koennte man z.B. machen?
        Vielleicht sowas:
        onsubmit eine Funktion tu_was() aufrufen, die beim ersten Durchlauf die ganze Prueferei und das Abschicken besorgt, sich per setTimeout('tu_was()',10000) selbst wieder aufruft (zweiter Durchlauf). Im diesem zweiten Durchlauf wird die Bestaetigungsseite geladen.
        Na ja, so oder ganz anders eben...

        Christine

      2. Stimmt, das funktioniert nur, wenn der Anwender schnell genug ist. Sollte er nach dem Timeout immer noch das Bestätigungsfenster zum Versenden der E-Mail offen haben, funktioniert es nicht. Gibt es aber vielleicht die Möglichkeit, zwei aufeinanderfolgende Funktionen mit dem Event onSubmit() zu übergeben, so dass z.B. nach einer Adressüberprüfung seperat ein weiteres Fenster geöffnet werden kann, also ohne dass ich die Funktionen irgendwie verbinden muss?

        Kurze Zwischenfrage:
        Willst Du den Mailversand anstoßen und dann, also nach dem Absenden des Mails, ein 'vielen Dank' anzeigen, oder möchtest Du wirklich gleichzeitig ein zweites Fenster öffnen, unabhängig, ob das Mail wirklich abgeschickt wurde ?
        Wenn ersteres der Fall ist, weiß ich nicht ob das funktioniert. Beim Nichtversenden dürfte der folgende Befehl nicht ausgeführt werden. Du müßtest also einen Code zurückbekommen. Ich kenne mich hier nicht aus, ob das der Fall ist.
        Im zweiten Fall führ die Befehle doch einfach nacheinander aus.

        Auf alle Fälle kannst Du bei onSubmit() doch auch ein Script ausführen lassen anstelle eines einzelnen Befehles.

        Gruß
        Astrid Keßler