Murzel: Bestätigungsfenster nach Formularversand

Hi, ich bin blutiger Anfänger was PHP und Javascript angeht.
Folgendes Problem: Nach dem Ausfüllen und Abschicken eines Kontakt-Formulars soll ein Fenster mittig erscheinen, dass dem User mitteilt, dass alles okay war. Das Formular wird serverseitig von einem PHP Script gecheckt, ob alle Angaben richtig sind und die Mail wird versand. Hier soll auch das Fenster generiert und gesteuert werden, d.h., wenn man auf OK geklickt hat, geht das Fenster wieder zu und man ist auf der vorherigen Formualrseite. Verstanden, was ich so stümperhaft versucht hab zu erklären?

Hier die entsprechende Passag im PHP Script:

if ($success){
     if($exitpage && file_exists($exitpage)){
 $link = '?' . substr($link,1);
 header("Location: " . $exitpage . $link);
     } else {
 echo "<B><CENTER>Danke für Ihre Nachricht</CENTER></B>\n";
        }
     }
     else{
 echo "<CENTER><B>Internal Error</B>:  Your input was unprocessed.<BR>Contact $from</CENTER>\n";
 }
}

Vielen Dank für eure Hilfe. Ich habe bisher nichts pssendes gefunden.

Gruß Murzel

  1. Die einfachste Lösung (aber nicht die beste) ist, wenn du nach dem erfolgreichen Check der Formulardaten in einem Hidden-Feld ein Wert setzt (z.b. "true" oder "yes" oder "1" usw.). Eine JavaScript-Funktion prüft dieses Feld alle x sek. nach nach dem entsprechenden Wert.
    Ist vorhanden, dann alert() oder Meldung via HTML-Elementen wie DIV-Box.
    Sonst, keine Meldung.

    Beispiel:
    <html>

      
    <head>  
     <script type="text/javascript">  
      function checkInput() {  
       if(document.getElementById("sendSucs").value == "true") alert("eMail wurde verschickt");  
       setTimeout("checkInput()", 250); // alle 250 millisek. wird die Funktion aufgerufen  
      }  
     </script>  
    </head>  
    
    

    <body onLoad="checkInput()">
    </body>
    </html>

    1. Die einfachste Lösung (aber nicht die beste) ist, wenn du nach dem erfolgreichen Check der Formulardaten in einem Hidden-Feld ein Wert setzt (z.b. "true" oder "yes" oder "1" usw.). Eine JavaScript-Funktion prüft dieses Feld alle x sek. nach nach dem entsprechenden Wert.
      Ist vorhanden, dann alert() oder Meldung via HTML-Elementen wie DIV-Box.
      Sonst, keine Meldung.

      Vielen Dank für die schnelle Antwort. Heißt das, dass in dem PHP-Script keine Möglichkeit besteht, statt des "echo"-Befehls, der das ganze Formular-Fenster löscht und die Nachricht oben mittig hinschreibt, ein neues kleines Fenster mittig mit einem OK-Knopf hinzubekommen? Es ist ja nur eine optische Sache. Oder meinst du, dass ich anstelle der beiden "echo"-Befehle eine Variable auf "true" oder "false" setzen soll und das an das aufrufende HTML-Script geschickt wird und in dem dann darauf reagiert wird (z.B. mit deinem Vorschlag)?

      Murzel

      1. Vielen Dank für die schnelle Antwort. Heißt das, dass in dem PHP-Script keine Möglichkeit besteht, statt des "echo"-Befehls, der das ganze Formular-Fenster löscht und die Nachricht oben mittig hinschreibt, ein neues kleines Fenster mittig mit einem OK-Knopf hinzubekommen?

        Mit PHP geht es auch.
        Willst du ein neues Fenster öffnen, oder willst auf der aktuellen Seite einen Layer öffnen? Ein einfaches alert() in JS tut es auch, hat auch einen "OK" Knopf.

        Es ist ja nur eine optische Sache. Oder meinst du, dass ich anstelle der beiden "echo"-Befehle eine Variable auf "true" oder "false" setzen soll und das an das aufrufende HTML-Script geschickt wird und in dem dann darauf reagiert wird (z.B. mit deinem Vorschlag)?

        Das ist eine eifache Lösung, keine professionelle. Der Zweg wird dabei erfüllt.

        Beachte: Wenn du auf JS setzt, dann werden User die JS deaktiviert haben, nix davon mitbekommen.

      2. Hallo,

        Die einfachste Lösung (aber nicht die beste) ist, wenn du nach dem erfolgreichen Check der Formulardaten in einem Hidden-Feld ein Wert setzt (z.b. "true" oder "yes" oder "1" usw.). Eine JavaScript-Funktion prüft dieses Feld alle x sek. nach nach dem entsprechenden Wert.
        Ist vorhanden, dann alert() oder Meldung via HTML-Elementen wie DIV-Box.

        Heißt das, dass in dem PHP-Script keine Möglichkeit besteht, statt des "echo"-Befehls, der das ganze Formular-Fenster löscht und die Nachricht oben mittig hinschreibt, ein neues kleines Fenster mittig mit einem OK-Knopf hinzubekommen?

        genau das heißt es. Wenn du ein Formular abschickst, wird serverseitig(!) ein PHP-Script aufgerufen, das die Formulareingaben entgegennimmt, irgendwie verarbeitet und dann eine Antwort an den Browser zurückschickt. Diese Antwort wird als neue Seite dargestellt, ersetzt also das, was bisher im Browserfenster angezeigt wurde (das Formular).

        Es ist ja nur eine optische Sache.

        Eben. Und da kann PHP nicht mitmischen. Auch was du danach noch erwähnt hast (ein Message-Fenster, in dem man auf [OK] klicken soll), ist in PHP völlig unmöglich, da PHP auf dem Webserver läuft und gar nicht direkt mit dem Benutzer oder Ereignissen im Browser interagieren kann.

        Der übliche Ablauf ist also:
         * HTML-Seite mit Formular wird angezeigt
         * Formular wird abgeschickt
         * Serverseitiges Script verarbeitet Formulardaten
         * Script erzeugt eine Antwortseite
         * Antwortseite wird im Browser dargestellt

        Diese Antwortseite *kann* natürlich dieselbe sein wie die ursprüngliche, die das Formular enthält - eventuell um eine zusätzliche Information über den Erfolg der Aktion ergänzt.
        Im Falle eines Misserfolgs (fehlerhafte Eingaben) kann die Antwortseite sogar das Formular mit allen bisher eingegebenen Werten enthalten, so dass der Besucher seine Eingabe korrigieren und das Formular erneut absenden kann. Diese Technik nennt sich im Fachjargon "Affenformular".

        So long,
         Martin

        --
        Du kannst dem Leben nicht mehr Tage geben.
        Aber dem Tag mehr Leben.
  2. Hello,

    da Du sowieso eine Response vom Server erhältst, würde ich auf zusätzliches Javascript ganz verzichten und einfach ein Zwischenformular schicken, das

    • eine Erfolgsbestätigung enthält
    • die Rückkehr zum eigentlichen Formular enthält
    • alternative Links enthält

    Dafür benötogst Du kein unsicheres[1] Javascript

    [1] unsicher in Bezug darauf, ob der User es überhaupt zulässt.

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  3. Folgendes Problem: Nach dem Ausfüllen und Abschicken eines Kontakt-Formulars soll ein Fenster mittig erscheinen, dass dem User mitteilt, dass alles okay war. Das Formular wird serverseitig von einem PHP Script gecheckt, ob alle Angaben richtig sind und die Mail wird versand. Hier soll auch das Fenster generiert und gesteuert werden, d.h., wenn man auf OK geklickt hat, geht das Fenster wieder zu und man ist auf der vorherigen Formualrseite. Verstanden, was ich so stümperhaft versucht hab zu erklären?

    Alternative:

    Und wo, so frage ich, bleibt nach erfolgreichem Submit der Text, den ich soeben versendet habe, damit ich ihn archivieren kann, und mich darauf berufen kann, dass ich am So-und-so-vielten eine valide Mail mittels der Kontaktmail mit dem von mir archiviertem Text gesendet habe?

    mfg Beat

    --
    Woran ich arbeite:
    X-Torah
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    1. Hello,

      Und wo, so frage ich, bleibt nach erfolgreichem Submit der Text, den ich soeben versendet habe, damit ich ihn archivieren kann, und mich darauf berufen kann, dass ich am So-und-so-vielten eine valide Mail mittels der Kontaktmail mit dem von mir archiviertem Text gesendet habe?

      Der gute Ton im Geschäftsleben, die Kumulation und Reduktion von Prozessen auf das Wesentliche usw. sind durch M$ und seine Kinderkakkesoftware schon seit Jahren in die Binsen gegegangen.

      Das Gleiche macht sich nun im Web auch breit. Selbst seriöse Firmen (waren Banken nicht mal seriös?) verzichten auf eine vernünftige Quittung im Webdialog.

      Man müsste sich erneut und immer wieder dafür einsetzen, dass das Web in diesem Punkte seriöser und auch wieder ein Stückchen seutscher wird. Eine Auszeichnung (Award) wäre sicherlich eine gute Idee.

      Liebe Grüße aus Syburg bei Dortmund

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Man müsste sich erneut und immer wieder dafür einsetzen, dass das Web in diesem Punkte seriöser und auch wieder ein Stückchen seutscher wird. Eine Auszeichnung (Award) wäre sicherlich eine gute Idee.

        Nö, keine Awards für Formulare, sondern ein Dienst, bei dem sich Formulare mit Mängel auflisten und abfragen lassen. Das ganze am Besten als Browser-Plugin.
        Füllt man zum ersten Mal ein Formular aus, dann kann man es anschliessend bewerten und so andere, die das Plugin benutzen, vorwarnen.

        mfg Beat

        --
        Woran ich arbeite:
        X-Torah
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        1. Hello,

          Man müsste sich erneut und immer wieder dafür einsetzen, dass das Web in diesem Punkte seriöser und auch wieder ein Stückchen seutscher wird. Eine Auszeichnung (Award) wäre sicherlich eine gute Idee.

          Nö, keine Awards für Formulare, sondern ein Dienst, bei dem sich Formulare mit Mängel auflisten und abfragen lassen. Das ganze am Besten als Browser-Plugin.
          Füllt man zum ersten Mal ein Formular aus, dann kann man es anschliessend bewerten und so andere, die das Plugin benutzen, vorwarnen.

          Ja klar, das würde ich auch gut finden, aber das passt leider nicht ins vorhandene Rechtssystem. Da hättest Du sehr schnell eine Klage wegen Rufschädigung am Halse. Die Wahrheit ist immer noch die "Wahrheit des Geldes".

          Liebe Grüße aus Syburg bei Dortmund

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. Nö, keine Awards für Formulare, sondern ein Dienst, bei dem sich Formulare mit Mängel auflisten und abfragen lassen. Das ganze am Besten als Browser-Plugin.
            Füllt man zum ersten Mal ein Formular aus, dann kann man es anschliessend bewerten und so andere, die das Plugin benutzen, vorwarnen.

            Ja klar, das würde ich auch gut finden, aber das passt leider nicht ins vorhandene Rechtssystem. Da hättest Du sehr schnell eine Klage wegen Rufschädigung am Halse. Die Wahrheit ist immer noch die "Wahrheit des Geldes".

            Das ist doch scheissegal, solange der Dienst nicht in Land der Betriebsverunsicherten domiziliert ist.

            Die Beurteilung Usability geschieht durch Anchecken von Kritikpunkten: Ja / Nein.
            Von mir aus mit dem absurden Resultat bei Abfragen.
            Rücksendung des submitteten Inhalts fehlt: Ja 67% nein 33%

            mfg Beat

            --
            Woran ich arbeite:
            X-Torah
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
  4. Vielen Dank an alle zusammen, die so schnell geantwortet haben.

    Ich habe mir jetzt anders beholfen. Da ich totaler Anfänger bin und keine Zeit habe, eure Vorschläge nachzugooglen (z.B. Wie und wo erzeuge ich ein Hidden-Feld und lege dort eine Variable ab und wo frage ich dann deren Wert ab???) und es mir nur auf die Optik ankommt, habe ich festgestellt, dass ich einen Link zu einer Seite angeben kann, der nach erfolgreichem Check aus dem PHP-Script angesprungen wird. Also ohne Javascript, aber auch ohne Okay-Button. Ich habe also eine neue Seite gebastelt, auf der optisch schön gestaltet steht, dass die Nachricht versand wurde. Nachteil ist nur, dass man die Kontaktdaten, die eingegeben wurden, nicht mehr sieht.

    Ich dachte, dieses Problem sei völlig banal, da es ja eigentlich ständig auftritt. Dass ich damit so viele Antworten lostreten würde, hätte ich nicht geglaubt. Nochmals vielen Dank an das Forum.

    Gruß Murzel