unterschiedliche Sendebestätigungsseiten
<script>
Der
Formmailer von
Onlex.de erfreut sich mittlerweile grosser Beliebtheit sowohl bei Privatpersonen als auch bei grösseren Firmen.
Dabei sind die Ansprüche sehr unterschiedlich:
private Homepages haben im Schnitt ca. 1 - 2 Formulare, Unternehmen hingegen haben schon ein Mehrfaches online.
Hierdurch kam der Wunsch, dass es für jedes einzelne Formular eine eigene Sendebestätigungsseite geben soll, aber die Daten stets an die selbe eMail-Adresse geschickt werden sollen.
In der
JavaScript-Ecke haben wir bereits einige Wünsche auf einfache Weise lösen und erklären können, die ähnliche Anliegen bearbeiteten:
Bei Letzterem kam dann auch gleich die Idee: Wenn verschiedensprachige Sendebestätigungsseiten möglich sind, dann sind sicherlich auf ähnliche einfache Art und Weise auch unterschiedliche Sendebestätigungsseiten möglich.
So ist es auch!
Geht man nun von folgender Situation aus, dass
mehrere Formulare in
ein und der selben Webpräsenz vorliegen (Beispiele):
-
Bestellung (
bestellung.html
)
-
Kontakt (
kontakt.html
)
-
Newsletter Anmeldung (
newsletter.html
)
-
Newsletter Anmeldung Verifizierung (
newsletter-bestaetigen.html
)
-
Newsletter Abmeldung (
newsletter-abmeldung.html
)
In der Konfiguration des
Formmailers im eigenen Benutzerkonto bei
Onlex.de kann man nur eine Sendebestätigungsseite angeben:
Diese Sendebestätigungsseite kann sehr allgemein gehalten werden.
Nun möchte man jedoch für jedes Formular eine eigene Sendebestätigungsseite haben,
z.B. eine Bestätigung, dass die Bestellung erfolgreich verschickt wurde.
Hierfür wird eine eigene Sendebestätigungsseite angelegt:
-
sendebestaetigung-bestellung.html
Jetzt soll auf die korrekte Seite weitergeleitet werden, also von
sendebestaetigung.html
(die in der Konfiguration des
Formmailers angegeben wurde) zu
sendebestaetigung-bestellung.html
.
Hier bedarf es nur wenig JavaScript Code im
<head>
Bereich der
HTML Datei
sendebestaetigung.html
:
<script type="text/javascript">
if (document.referrer.indexOf("bestellung") > -1) {
window.location.href = 'sendebestaetigung-bestellung.html';
}
</script>
Im JavaScript Code wird nun im aktuellen Dokument (
document
) der so genannte
Referrer (
referrer
) ausgelesen. Dieser Referrer speichert den
URI, von dem aus die aktuelle Datei augerufen wurde. Der gespeicherte
URI könnte wie folgt lauten:
-
http://www.domain.tld/bestellung.html
Damit man nicht die komplette Adresse schreiben muss, reicht es, wenn man nur einen Teil der Adresse schreibt. Hierzu nutzt man den String
indexOf()
.
Bei Eingabe von
document.referrer.indexOf("bestellung")
wird im Referrer des aufgerufenen Dokuments (
sendebestaetigung.html
) nach "bestellung" gesucht.
D.h., dass der
URI wie folgt sein könnte:
-
http://www.domain.tld/bestellungsformular.html
-
http://www.domain.tld/bestellung-formular.html
-
http://www.domain.tld/formular-bestellung.html
-
usw.
Wenn nun der String "bestellung" gefunden wird, wird die Seite
sendebestaetigung-bestellung.html
geöffnet:
window.location.href = 'sendebestaetigung-bestellung.html';
Wenn man nun mehrere Bestellformulare hat, kann man auch im String den korrekten Dateinamen angeben:
document.referrer.indexOf("bestellungsformular.html")
So behält man einen einfachen Überblick.
Wenn wir nun schon mal bei mehreren Formularen allgemein sind:
Wie kann man nun verschiedene Sendebestätigungsseiten
bzw. den Formularen angepassten Sendebestätigungsseiten nutzen?
Durch eine einfache Erweiterung des obigen JavaScript Codes:
<script type="text/javascript">
if (document.referrer.indexOf("bestellung.html") > -1) {
window.location.href = 'sendebestaetigung-bestellung.html';
} else if (document.referrer.indexOf("newsletter.html") > -1) {
window.location.href = 'newsletter-anmeldung.html';
}
</script>
Im obigen Code passiert nun folgendes:
Im aktuellen Dokument wird im Referrer nach der Zeichenfolge "bestellung.html" gesucht (
document.referrer.indexOf("bestellung.html") > -1
). Wenn (
if
) diese Zeichenfolge gefunden wird, dann wir die Seite
sendebestaetigung-bestellung.html
geöffnet (
window.location.href = 'sendebestaetigung-bestellung.html'
).
Wenn diese Zeichenfolge nicht gefunden wird, dann (
else
) wird nach der Zeichenfolge "newsletter.html" gesucht (
document.referrer.indexOf("newsletter.html") > -1
). Wenn (
if
) diese Zeichenfolge gefunden wird, dann wir die Seite
newsletter-anmeldung.html
geöffnet (
window.location.href = 'newsletter-anmeldung.html'
).
Dies kann nun beliebig oft fortgesetzt werden.
↑
zum Seitenanfang ↑