stop();
this.onEnterFrame = function () {
but1.setText ("Abschicken"); // Beschrifftung zuweißen
but2.setText ("Löschen");
delete this.onEnterFrame; //Handler löschen
}
restrictFields(); //Funktionsaufruf zum Beschrifften der Textfelder
function restrictFields() {
// In den Namen nur Buchstaben, den Punkt und den Bindestrich zulassen:
msg_forename.restrict = msg_lastname.restrict = "a-zA-Z.\\-öäüÖÄÜß";
// In der Telefonnummer nur Zahlen, den Schrägstrich und den Punkt zulassen:
msg_tel.restrict = "0-9/\\-";
//In der e-Mail-Adresse nur Buchstaben, den Punkt, Binde und Unterstrich und das @-Zeichen zulassen:
msg_mail.restrict = "a-zA-Z0-9_\\-.@";
}
function checkForm() {
var error = 0; // Variable, die die Eingabefehler bitweise codiert enthält
// Jeder mögliche Fehler erhält hier ein Bit in dieser Variable
error += (msg_lastname.text.length < 2)? 1 : 0; // Namen sollten mindestens zwei Zeichen lang sein
error += (msg_forename.text.length < 2)? 2 : 0;
error += (msg_mail.text.length < 10)? 8 : 0; // und die e-Mail-Adresse mindestens 8
// wir testen nur, ob das @ und der Punkt nicht zu weit vorne oder hinten in der Adresse liegen.
// Zusätzlich kann man auf die richtige Reihenfolge und Anzahl dieser Zeichen testen, aber ich möchte dieses
// Beispiel an dieser Stelle kurz halten.
error += (msg_mail.text.indexOf("@") < 3 || msg_mail.text.lastIndexOf("@") > msg_mail.text.length - 4) ? 16 : 0;
error += (msg_mail.text.indexOf(".") < 3 || msg_mail.text.lastIndexOf("@") > msg_mail.text.length - 2) ? 32 : 0;
error += (msg_message.text.length < 2) ? 64 : 0;
return error; // wir geben den Fehlerwert zurück. Ist diese Variable 0, so sind keine Fehler erkannt worden.
}
function errorMsg(error) {
var estr = ""; // Rückgabestring initialisieren
// Zum Testen der einzelnen Bits verschieben wir den Wert um die entsprechende Anzahl Bits und
// ziehen ggf. den jeweiligen Bitwert ab:
if (error >> 0) {estr += "\n> Geben Sie Ihren Nachnamen ein";}
if (error >> 1) {estr += "\n> Geben Sie Ihren Vornamen ein"; error -= 2;}
if (error >> 3) {estr += "\n> Geben Sie eine eMail-Adresse ein"; error -= 8;}
if (error >> 4) {estr += "\n> ungültige eMail-Adresse"; error -= 16;}
if (error >> 5) {estr += "\n> ungültige Domain in der eMail-Adresse"; error -= 32;}
if (error >> 6) {estr += "\n> Geben Sie eine Nachricht ein"; error -= 64;}
return estr; // Rückgabe der Zeichenkette
}
function sendForm() {
var error = checkForm(); // Rückgabe der Funktion checkForm speichern
if (error == 0) { // Wenn kein Fehler aufgetreten ist, wird das Formular verschickt
var LV = new LoadVars(); // Wir legen ein LoadVars-Objekt an, um das Senden und Empfangen zu ermöglichen
// und weisen diesem die Werte unserer Eingabefelder zu. Wir "escapen" diese Werte, das heißt wir wandeln sie
// für den Versand in URL-encodierte Zeichenketten um:
LV.msg_lastname = escape(msg_lastname.text);
LV.msg_forename = escape(msg_forename.text);
LV.msg_tel = escape(msg_tel.text);
LV.msg_mail = escape(msg_mail.text);
LV.msg_message = escape(msg_message.text);
// mit der Funktion sendAndLoad senden wir die Daten an unser PHP-Script und empfangen
// gleichzeitig eine Antwort:
LV.sendAndLoad("mailto.php", LV, "POST");
// Wenn eine Antwort empfangen wurde, geben wir eine entsprechende Meldung aus:
LV.onLoad = function() {
display.text = "\n> ";
if (this.answer != undefined) { // Wenn eine gültige Antwort empfangen wurde (Variable "answer") ...
display.text += unescape(this.answer); // geben wir diese aus.
} else { // andernfalls ...
display.text += "Ein unbekannter Fehler ist aufgetreten!"; // geben wir eine Standartmeldung aus
}
// unser Script gibt zusätzlich eine Variable (success) aus, wenn das Senden erfolgreich war:
if (this.success == "true") clearForm(); // wir löschen dann das Formular
}
} else { // Wenn Eingabefehler bemerkt wurden ...
display.text = errorMsg(error); // geben wir die entsprechende Meldung aus.
}
}
function clearForm() {
msg_lastname.text = "";
msg_forename.text = "";
msg_tel.text = "";
msg_mail.text = "";
msg_message.text = "";
}