Juergen Walger: Seitenwechsel nach Submit

Hallo
irgendwie hab ich ein Problem beim Anzeigen einer Hinweisseite nach dem Absenden eines Formulars.
Nach dem Absenden soll eine Seite angezeigt werden mit dem Hinweis das die Mail angekommen ist.
Da ich keinen Zugriff auf CGI habe wollte ich das ganze mit JS realisieren (siehe untenstehenden Quelltext).
Irgendetwas mache ich jedoch falsch. Der Hinweis wird nämlich nur dann angezeigt wenn der submit der
Mail mit cancel abgebrochen wurde. Ich habe schon verschiedenes ausprobiert der Hinweis kommt aber
immer nur dann wenn der submit abgebrochen wurde. Was mache ich falsch? Wäre nett wenn mir
jemand aus dem Forum weiterhelfen könnte.

<HTML>
<HEAD>
  <SCRIPT language="JavaScript">
     function ResetCheck() { chk = window.confirm("Wollen Sie alle Eingaben loeschen?"); return chk; }
     function aufruf() {  self.location.href="hinweis1.htm";  }
  </SCRIPT>
</HEAD>
<BODY BGCOLOR="#E2FAF6" TEXT="#000000" LINK="#0000a0" VLINK="#800080">
<P ALIGN=Center>
<BIG>Falls Sie in die Verweisliste für Angelvereine aufgenommen werden
möchten füllen Sie bitte das untenstehende Formular aus. </BIG>
<P>
<FORM name="Verweisliste" onSubmit="aufruf()" onReset="return ResetCheck()"
action="mailto:walgerj@aol.com?subject=Verweise-Angelvereine" method="POST"
enctype="text/plain">
  <PRE>
   <B>Verein:   </B> <INPUT TYPE="text" NAME="VEREIN" SIZE="40" MAXLENGTH="60">
   <B>URL:      </B> <INPUT TYPE="text" NAME="URL" SIZE="40" MAXLENGTH="60">
   <B>E-Mail:   </B> <INPUT TYPE="text" NAME="MAIL" SIZE="40" MAXLENGTH="60">
   <B>Formular: </B> <INPUT TYPE=submit VALUE="Senden"><INPUT TYPE=reset VALUE="Löschen">
  
</PRE>
</FORM>
<P ALIGN=Center>
<A HREF="l_verein.htm" TARGET="_rechts">Zurück</A>
</BODY></HTML>

  1. Hi,

    die Lösung fuindest Du unter:

    <../../sfarchiv/1999_4/t09347.htm#a47268>

    Grüße,

    Utz

    1. die Lösung fuindest Du unter:

      <../../sfarchiv/1999_4/t09347.htm#a47268>

      Hi
      danke für den Tip aber das hatte ich auch schon probiert. Funktioniert aber leider auch nur bedingt.
      Mein Problem ist das bei den Browsern NS und IE nach den Submit ein Hinweis kommt von wegen
      Daten versenden blablabla und dann die Abfrage senden Ja/Nein.
      Bei der Lösung aus dem Forum wird immer auf die neue Seite gewechselt, auch wenn das senden
      der Mail abgebrochen und die Mail somit nicht gesendet wurde. Bei meiner Lösung wird nur bei
      einem Abbruch des sendens, die Seite gewechselt. Leider genau das Gegenteil von dem was ich
      eigentlich will. Und da ich es trotz verschiedener Versuche nicht geschafft habe das hinzugriegen
      ........
      Gruß
      Juergen

      1. Hallo!

        Ich habe alles nocheinmal durchprogrammiert! Mit das, daß Meldung "Diese Formular wird per E-mail..", wenn man da auf auf abbrechen klickt nciht dei danke seite kommt, ja das ahbe ich auch nicht geschafft. Sonst dürfetn alle Fehler augemertzt sein!

        ---schnipp und schnapp start---<HTML>
        <HEAD>
        <SCRIPT language="JavaScript">
        <!--
        function form0define()
        {
          document.forms[0].action = "mailto:walgerj@aol.com?subject=Verweise-Angelvereine";
          document.forms[0].encoding = "text/plain";
          document.forms[0].method = "POST";
        }
        function form0valligator()
        {
          var valligator = (document.forms[0].MAIL.value.indexOf("@") == "-1") ? "notok" : "ok";
          var valligator = (document.forms[0].MAIL.value.indexOf(".") == "-1") ? "notok" : "ok";
          var valligator = (document.forms[0].URL.value.indexOf("://") == "-1") ? "notok" : "ok";
          var valligator = (document.forms[0].URL.value.indexOf(".") == "-1") ? "notok" : "ok";
          if(valligator == "ok") form0submit()
          else alert ("Fehler: Bitte Überprüfen Sie die Eingaben!");
        }
        function form0submit()
        {
          document.forms[0].submit();
          window.setTimeout ("window.location.href = 'danke.html'", 1000);
        }
        function form0reset()
        {
          okreset = confirm("Wollen Sie alle Eingaben loeschen?");
          if(okreset == true) document.forms[0].reset();
        }
        //-->
        </SCRIPT>
        </HEAD>
        <BODY BGCOLOR="#E2FAF6" TEXT="#000000" LINK="#0000a0" VLINK="#800080" onLoad="form0define()">
        <P ALIGN=Center>
        <BIG>Falls Sie in die Verweisliste für Angelvereine aufgenommen werden
        möchten füllen Sie bitte das untenstehende Formular aus. </BIG>
        <P>
        <FORM>
          <PRE>
           <B>Verein:   </B> <INPUT TYPE="text" NAME="VEREIN" SIZE="40" MAXLENGTH="60">
           <B>URL:      </B> <INPUT TYPE="text" NAME="URL" SIZE="40" MAXLENGTH="60">
           <B>E-Mail:   </B> <INPUT TYPE="text" NAME="MAIL" SIZE="40" MAXLENGTH="60">
           <B>Formular: </B> <INPUT TYPE="button" VALUE="Senden" onClick="form0valligator()"><INPUT TYPE="button" VALUE="Löschen" onClick="form0reset()">
          </PRE>
        </FORM>
        <P ALIGN=Center>
        <A HREF="l_verein.htm" TARGET="_rechts">Zurück</A>
        </BODY></HTML>
        ---schnipp und schnapp ende---

        Ach ja, die Überprüfung der Felder (nicht so gut gelungen) kannt Du auch entfernen.

        Thilo

  2. Hi

    nur ne kleine Anmerkung dazu :
    Ist dir bewusst das diese Mail-Formulare ohne CGI nur dann richtig
    funktionieren wenn man ein Mail-Programm benutzt das mehr oder weniger
    im Browser integriert ist ?

    Wer z.B. beim IE nicht Outlook Express benutzt dem wird nur ein leeres
    Mail-Formular mit der Empfänger-Addresse präsentiert.

    Ich finde es zumindest immer reichlich frustrierend wenn man erst ein
    Formular auszufüllt und man dann merkt das die ganzen Eingaben umsonst
    waren.

    MEin Tip daher : Entweder richtig mit CGI , oder sonst einfach reines
    mailto an die Email-Addresse und ein kleiner Text vielleicht was in die
    Email reinsoll.

    Bel

  3. Hallo Jürgen!

    Deine Lösung hat einige Haken. So setzt das Versenden einer Mail per MailTo u.a. die korrekte Einrichtung des Browsers voraus. Es bieten sich, wenn Du keine eigenen  CGI's nutzen kannst, Dienste wie z.B. http://www.formmailer.com/ an. Dort kannst Du dann z.B.
    1. die Felder des Formulars überprüfen lassen und
    2. je nach dem Ergebnis eine eigene Fehler- oder Bestätigungsseite anzeigen lassen.
    Ausserdem lässt sich die Mail noch formatieren.

    Gruß Frank