CoolAce 17 Geschrieben 3. Januar 2006 Melden Teilen Geschrieben 3. Januar 2006 Hyda ich mich jetzt seit tagen mit rumschlag um im kompletten Web keine Lösung für Finde hoffe ich auf euch, wie immer meine letzte ChanceProblem: Formular passt soweit und die Daten werden über versenden verschickt nurer löscht dann nach dem Senden nicht automatisch die Daten aus den Formularfeldern wie kann man das einfach machen. ?Code: <SCRIPT LANGUAGE="JavaScript"> //--> </script> </head> <form name="mailer" action="mailto:CoolAce@gmx.de" method="post" enctype="text/plain"> <table width="100%" border="0" cellpadding="10" cellspacing="0" > <tr> <td > <font color=white> <p align=center> Firma: <input type="Text" name="Firma" value="" size="20" maxlength="50" > <br> <input type="Radio" name="Herr/Frau" value="Herr">Herr <input type="Radio" name="Herr/Frau" value="Frau">Frau <br> Vorname: <input type="Text" name="Vorname" value="" size="20" maxlength="50" > <br> Nachname: <input type="Text" name="Nachname" value="" size="20" maxlength="50" > <br> Telefon: <input type="Text" name="Telefonnummer" value="" size="20" maxlength="50" > <br> E-Mail: <input type="Text" name="Mail" value="" size="20" maxlength="50" > <br> <br> Mitteilung: <textarea name="comment" cols="30" rows="5" ></textarea></td></tr></font><p> <tr> <td align="center" ><input type="Reset" value="Löschen" onClick="return confirm('Sind Sie sicher?')" > <input type="Submit" value="Abschicken" onclick="checkForm()" ></td> schon mal danke für die HilfeGrußCoolAce :cool: Zitieren Link zu diesem Kommentar
BuzzeR 10 Geschrieben 3. Januar 2006 Melden Teilen Geschrieben 3. Januar 2006 Ein Hallo dem CoolAce. Mach's doch mal so ... <form action="mailto:haumichblau@Marquis.de" onSubmit="checkForm();" onReset="return confirm('Wirklich');"> ... <input type = "submit" value = "senden"> <input type = "reset" value = "löschen"> </form> ... oder meinst Du ein direktes löschen nach dem Versand und nicht einfach die Generierung einer Abfragebestätigung? LG Marco Zitieren Link zu diesem Kommentar
CoolAce 17 Geschrieben 3. Januar 2006 Autor Melden Teilen Geschrieben 3. Januar 2006 Hallo BuzzeR vielen Dank für deine Hilfe ich meine ein direktes löschen nach dem erfolgreichen Versand der Daten, den sonst ist die E-mail mit den Daten raus aber die Benutzereingaben stehen noch immer drin Gruß CoolAce Zitieren Link zu diesem Kommentar
BuzzeR 10 Geschrieben 3. Januar 2006 Melden Teilen Geschrieben 3. Januar 2006 Nun, das genannte Problem könntest Du innerhalb Deiner checkForm() - Funktion lösen, indem Du nach erfolgreicher Prüfung aller Elemente ein Kopiervorgang initiierst, der alle sichtbaren Elemente in zuvor angelegte Hidden-Fields kopiert und die sichtbaren Elemente löscht. Vorgehen: Erweitern des Formulars um Hidden Fields Erweitern der checkForm() - Funktion um Kopiervorgang Löschen der Inhalte in sichtbaren Feldern Beispiel <html> <head> <script language="JavaScript"> <!-- function checkForm() { // Hier findet im Vorfeld die Prüfung auf // Plausibilität der Daten statt. if( true ) ... document.forms[0].bufferName.value = document.forms[0].name.value; document.forms[0].name.value = ""; return true; } // --> </script> </head> <body> <form action="mailto:hmb@marquis.de" method="Post" onSubmit="checkForm();" onReset="return confirm('Wirklich?');"> <input type = "text" name = "name"> <input type = "hidden" name = "bufferName"> <input type = "submit" value = "senden"> <input type = "reset" value = "abbrechen"> </form> </body> </html> Dies wäre nur eine Möglichkeit, die sich als praktikabel erwiesen hat. LG Marco Zitieren Link zu diesem Kommentar
CoolAce 17 Geschrieben 3. Januar 2006 Autor Melden Teilen Geschrieben 3. Januar 2006 vielen Dank für die antwort. versuch mein formular dahingehend anzupassen. Was gäbe es noch für möglichkeiten ? Gruß CoolAce Zitieren Link zu diesem Kommentar
BuzzeR 10 Geschrieben 3. Januar 2006 Melden Teilen Geschrieben 3. Januar 2006 Die sicherlich sinnvollste wäre über CGI zu gehen und nicht über Mail. Da hast Du dann weitaus mehr Möglichkeiten. ... <form action="NameOfDomain/cgi-bin/beabeiteDaten.pl" meth ...> ... </form> ... Zum Beispiel das senden einer neuen Seite mit "Danke für Ihre Registrierung ... bla bla". ET CETERA LG Marco Zitieren Link zu diesem Kommentar
CoolAce 17 Geschrieben 3. Januar 2006 Autor Melden Teilen Geschrieben 3. Januar 2006 leider erstreckt sich beim Page design meine Kenntnisse auf HTML :rolleyes: wie funktionieren den dieses Hidden Filds genau ? Gruß CoolAce :cool: Zitieren Link zu diesem Kommentar
BuzzeR 10 Geschrieben 3. Januar 2006 Melden Teilen Geschrieben 3. Januar 2006 Na wenn das so ist, wirst Du mit der serverseitigen Verarbeitung von Daten so Deine Probleme haben ... ich verstehe. Dafür sind schon mehr Kenntnisse als HTML nötig, aber bei kleineren Projekten ist das ja auch ohnehin nicht unbedingt nötig. Nun ja, Hidden - Fields unterscheiden sich mal nur dahingehend, daß sie halt versteckt sind und einen Container für alle möglichen Daten bieten. Du siehst sie nicht im Formular, sie sind aber da und werden aus Formularen heraus auch übermittelt. Der von mir o. a. Weg wird oft bei sehr umfangreichen Seiten, mit mehreren Formularen genutzt. Ich hoffe das war als Erklärung verständlich, drücke mich manchmal etwas holperig aus. ;) LG Marco Zitieren Link zu diesem Kommentar
CoolAce 17 Geschrieben 3. Januar 2006 Autor Melden Teilen Geschrieben 3. Januar 2006 Hy,sorry, aberhab getestet und experimentiert aber bekomm es nicht hin, jetzt löscht er zwar alle Felder aber verschickt nichts auser die vordefinierten Felder in der Tabelle . Was mach ich falsch <HTML> <HEAD> <TITLE> Überschrift </TITLE> </HEAD> <Body> <H1> <Center> <body bgcolor=green> <font color=white><H2><p align="center">Ihre Nachricht</p></font></H2> <SCRIPT LANGUAGE="JavaScript"> function checkForm() { //versteckten felder Funktion document.forms[0].Vorname.value = ""; document.forms[0].Nachname.value = ""; document.forms[0].Firma.value = ""; document.forms[0].Mail.value = ""; document.forms[0].Telefonnummer.value = ""; //====== Prueft Feld VornAME ====== if(document.mailer.Vorname.value=="") { alert ("Bitte Ihren Vornamen eingeben"); document.mailer.Vorname.focus(); return false; } if( document.mailer.Vorname.value.length <3 ) { alert ("Ihr Vorname sollte doch schon aus drei Zeichen bestehen, sonst wäre es ja kein Name sondern ein Buchstabe oder eine Ziffer"); document.mailer.Vorname.focus(); return false; } //====== Prueft Feld NachNAME ====== if(document.mailer.Nachname.value=="") { alert ("Bitte Ihren Nachnamen eingeben"); document.mailer.Nachname.focus(); return false; } if( document.mailer.Nachname.value.length <3 ) { alert ("Ihr Nachname sollte doch schon aus drei Zeichen bestehen, sonst wäre es ja kein Name sondern ein Buchstabe oder eine Ziffer"); document.mailer.Nachname.focus(); return false; } //====== Prueft Feld EMAIL ====== if (document.mailer.Mail.value=="") {alert ("Bitte eine Email eingeben"); document.mailer.Mail.focus(); return false } if(document.mailer.Mail.value.indexOf('@')==-1 ||document.mailer.Mail.value.indexOf('.')==-1) { alert ("Eine gültige Emailadresse muss \n '@' (At-Zeichen)und einen '.' (Punkt)\n enthalten."); document.mailer.Mail.focus(); return false } } //--> </script> </head> <form name="mailer" action="mailto:CoolAce@gmx.de" method="post" enctype="text/plain"> <table width="100%" border="0" cellpadding="10" cellspacing="0" > <tr> <td > <font color=white> <p align=center> Firma: <input type="Text" name="Firma" value="" size="20" maxlength="50" > <br> <input type="Radio" name="Herr/Frau" value="Herr">Herr <input type="Radio" name="Herr/Frau" value="Frau">Frau <br> Vorname: <input type="Text" name="Vorname" value="" size="20" maxlength="50" > <br> Nachname: <input type="Text" name="Nachname" value="" size="20" maxlength="50" > <br> Telefon: <input type="Text" name="Telefonnummer" value="" size="20" maxlength="50" > <br> E-Mail: <input type="Text" name="Mail" value="" size="20" maxlength="50" > <br> <br> Mitteilung: <textarea name="comment" cols="30" rows="5" ></textarea></td></tr></font><p> <br> <input type = "hidden" name = "bufferName"> <tr> <td align="center" ><input type="Reset" value="Löschen" onClick="return confirm('Sind Sie sicher?')" > <input type="Submit" value="Abschicken" onclick="checkForm();"> </td> </tr> </table> </form> </BODY> </HTML> Danke und GrußCoolAce :cool: Zitieren Link zu diesem Kommentar
BuzzeR 10 Geschrieben 3. Januar 2006 Melden Teilen Geschrieben 3. Januar 2006 Du weist den Felder an der falschen Stelle die leeren Zeichenketten zu. Diese Zuweisung gehört an das Ende und zwar dann so ... ... if(document.mailer.Mail.value.indexOf('@')==-1 ||document.mailer.Mail.value.indexOf('.')==-1) { alert ("Eine gültige Emailadresse muss \n '@' (At-Zeichen)und einen '.' (Punkt)\n enthalten."); document.mailer.Mail.focus(); return false } // HIER HIN document.forms[0].bufferVorname.value = document.forms[0].Vorname.value; document.forms[0].Vorname.value = ""; document.forms[0].bufferNachname.value = document.forms[0].Nachname.value; document.forms[0].Nachname.value = ""; document.forms[0].bufferFirma.value = document.forms[0].Firma.value; document.forms[0].Firma.value = ""; document.forms[0].bufferMail.value = document.forms[0].Mail.value; document.forms[0].Mail.value = ""; document.forms[0].bufferTelefon.value = document.forms[0].Telefonnummer.value; document.forms[0].Telefonnummer.value = ""; } Du legst also für jedes normale Feld in Deinem Formular noch ein Hidden-Field an, daß die Daten aufnimmt, bevor sie im Dokument gelöscht werden. Also im Formular ... ... <form ... > ... <input type = "hidden" name = "bufferVorname"> <input type = "hidden" name = "bufferNachname"> <input type = "hidden" name = "bufferFirma"> <input type = "hidden" name = "bufferTelefon"> <input type = "hidden" name = "bufferMail"> </form> ... Somit werden innerhalb der JavaScript - Funktion checkForm() die Daten aus den sichtbaren in die nicht sichtbaren Felder kopiert. Die sichtbaren Felder werden gelöscht und die Mail wird mit allen Feldern verschickt. Hilfreich? ;) LG Marco Zitieren Link zu diesem Kommentar
CoolAce 17 Geschrieben 3. Januar 2006 Autor Melden Teilen Geschrieben 3. Januar 2006 Hy,ich bin dir sehr sehr dankbar großer webmaster :) Hast mir sehr gut weiterhelfe können . . Letztes Problem bei der Sache Er verschickt die Felder doppeltQuellcode: function checkForm() { //Prueft Feld VornAME if(document.mailer.Vorname.value=="") { alert ("Bitte Ihren Vornamen eingeben"); document.mailer.Vorname.focus(); return false; } if( document.mailer.Vorname.value.length <3 ) { alert ("Ihr Vorname sollte doch schon aus drei Zeichen bestehen, sonst wäre es ja kein Name sondern ein Buchstabe oder eine Ziffer"); document.mailer.Vorname.focus(); return false; } //====== Prueft Feld NachNAME ====== if(document.mailer.Nachname.value=="") { alert ("Bitte Ihren Nachnamen eingeben"); document.mailer.Nachname.focus(); return false; } if( document.mailer.Nachname.value.length <3 ) { alert ("Ihr Nachname sollte doch schon aus drei Zeichen bestehen, sonst wäre es ja kein Name sondern ein Buchstabe oder eine Ziffer"); document.mailer.Nachname.focus(); return false; } //====== Prueft Feld EMAIL ====== if (document.mailer.Mail.value=="") {alert ("Bitte eine Email eingeben"); document.mailer.Mail.focus(); return false } if(document.mailer.Mail.value.indexOf('@')==-1 ||document.mailer.Mail.value.indexOf('.')==-1) { alert ("Eine gültige Emailadresse muss \n '@' (At-Zeichen)und einen '.' (Punkt)\n enthalten."); document.mailer.Mail.focus(); return false } document.forms[0].DieFirma.value = document.forms[0].Firma.value; document.forms[0].Firma.value = ""; document.forms[0].DerVorname.value = document.forms[0].Vorname.value; document.forms[0].Vorname.value = ""; document.forms[0].DerNachname.value = document.forms[0].Nachname.value; document.forms[0].Nachname.value = ""; document.forms[0].DieMail.value = document.forms[0].Mail.value; document.forms[0].Mail.value = ""; document.forms[0].DieTelefonnummer.value = document.forms[0].Telefon.value; document.forms[0].Telefon.value = ""; document.forms[0].DieMitteilung.value = document.forms[0].Mitteilung.value; document.forms[0].Mitteilung.value = ""; } //--> </script> </head> <form name="mailer" action="mailto:CoolAce@gmx.de" method="post" enctype="text/plain" > <table width="100%" border="0" cellpadding="10" cellspacing="0" > <tr> <td > <font color=white> <p align=center> Firma: <input type="Text" name="Firma" value="" size="20" maxlength="50" > <br> Vorname: <input type="Text" name="Vorname" value="" size="20" maxlength="50" > <br> Nachname: <input type="Text" name="Nachname" value="" size="20" maxlength="50" > <br> Telefon: <input type="text" name="Telefon" value="" size="20" maxlength="50" > <br> E-Mail: <input type="Text" name="Mail" value="" size="20" maxlength="50" > <br> <br> Mitteilung: <textarea name="Mitteilung" cols="30" rows="5" ></textarea></td></tr></font><p> <tr> </tr> </table> <td align="center" ><input type="Reset" value="Löschen" onClick="return confirm('Sind Sie sicher?')" > <input type="Submit" value="Abschicken" onclick="checkForm();"> <input type = "hidden" name = "DerName"> <input type = "hidden" name = "DieFirma"> <input type = "hidden" name = "DerVorname"> <input type = "hidden" name = "DerNachname"> <input type = "hidden" name = "DieTelefonnummer"> <input type = "hidden" name = "DieMail"> <input type = "hidden" name = "DieMitteilung"> </td> </form> </BODY> </HTML> Was rauskommtFirma=Vorname=Nachname=Telefon=Mail=Mitteilung=DerName=DieFirma=Ich AGDerVorname=HansDerNachname=MustermannDieTelefonnummer=089 888DieMail=Hans.Mustermann@ich.deDieMitteilung=Ich binsWie kann ich den oberen Teil vermeiden sodas Datenredudanz nicht auftritt ?grußCoolAce :cool: Zitieren Link zu diesem Kommentar
BuzzeR 10 Geschrieben 4. Januar 2006 Melden Teilen Geschrieben 4. Januar 2006 Hi auch. OK, um die ganze Sache mal abzukürzen, habe ich Dir eben einen Mailer programmiert. Er besteht aus drei Dateien und zwar: mailer.htm ( Die eigentliche HTML-Datei ) mailer.css ( Die Cascading-StyleSheet-Datei ) mailer.js ( Die JavaScript-Datei mit den nötigen Funktionen ) Brauchst die Dateien nur über Cut'n'Paste von hier in einen Editor kopieren und sie unter den o. a. innerhalb eines Verzeichnisses zu speichern. Die Textmitteilung wird dann auch ausreichend formatiert und es liegen keine redundanten Daten mehr vor. Des weiteren brauchst Du den Großteil der Formatierungsinformationen nur noch in der mailer.css ändern, da ich sie dahin ausgelagert habe. So sieht das dann aus: Die Farben kannst Du dann nach eigenem Gusto ebenfalls in der mailer.css anpassen. So, ich hoffe jetzt alles zu Deiner Zufriedenheit erledigt zu haben und viel Spaß damit. ;) LG Marco Zitieren Link zu diesem Kommentar
BuzzeR 10 Geschrieben 4. Januar 2006 Melden Teilen Geschrieben 4. Januar 2006 Hier kommt jetzt die HTML-Datei (mailer.htm). <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 TRANSITIONAL//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <!-- ============================ --> <!-- Mailer for CoolAce by BuzzeR --> <!-- Dateien: mailer.htm --> <!-- mailer.css --> <!-- mailer.js --> <!-- ============================ --> <head> <title>.:: Kontakt ::.</title> <link rel="StyleSheet" type="text/css" href="mailer.css"> <script language="JavaScript" src="mailer.js"></script> </head> <body> <div align="center"> <!-- Hier könnte man ein Logo einfügen --> <!-- <img src="" width="" height="" alt=""> --> <br> <form name="mailer" enctype="text/plain" method="post" onReset="return confirm('Wirklich zurücksetzen?');"> <table cellspacing="5" cellpadding="0"> <tr> <!-- ===== --> <!-- FIRMA --> <!-- ===== --> <td class="desc"> Firma: </td> <th colspan="3" class="content"> <input type="text" name="firma" class="input" size="72"> </th> </tr> <tr> <!-- ================= --> <!-- VOR- UND NACHNAME --> <!-- ================= --> <td class="desc"> Vorname: </td> <td class="content"> <input type="text" name="vname" class="input" size="12"> </td> <td class="desc"> Nachname: </td> <td class="content"> <input type="text" name="nname" class="input" size="12"> </td> </tr> <tr> <!-- ================ --> <!-- TELEFON UND MAIL --> <!-- ================ --> <td class="desc"> Telefon: </td> <td class="content"> <input type="text" name="telefon" class="input" size="12"> </td> <td class="desc"> E-Mail: </td> <td class="content"> <input type="text" name="madresse" class="input" size="12"> </td> </tr> <tr> <!-- ======= --> <!-- BETREFF --> <!-- ======= --> <td class="desc"> Betreff: </td> <th colspan="3" class="content"> <input type="text" name="betreff" class="input" size="72"> </th> </tr> <tr> <!-- ========== --> <!-- MITTEILUNG --> <!-- ========== --> <td class="desc"> Mitteilung: </td> <th colspan="3" class="content"> <textarea name="mitteilung" cols="73" rows="5" class="input"></textarea> </th> </tr> <tr> <!-- ======= --> <!-- BUTTONS --> <!-- ======= --> <th colspan="4" align="center"></td> <input type="button" value="Senden" class="ok" onClick="Data2Mail();"> <input type="reset" value="Zurücksetzen" class="cancel"> </th> </tr> <tr><th colspan="4"><br></th></tr> <tr> <!-- ====== --> <!-- REMARK --> <!-- ====== --> <th colspan="4" class="attention"> Bitte beachten Sie, daß <strong>alle</strong> Felder<br> Pflichtfelder sind und dementsprechend gefüllt werden<br> müssen. Vielen Dank für Ihr Verständnis. </th> </tr> </table> </form> </div> </body> </html> Zitieren Link zu diesem Kommentar
BuzzeR 10 Geschrieben 4. Januar 2006 Melden Teilen Geschrieben 4. Januar 2006 Hier kommt die Cascading-Stylesheet-Datei (mailer.css): .attention { font-family: Arial, Helvetica; font-size: 8pt; font-weight: bold; color: #000000; background-color: #e0e0e0; text-decoration: none; text-align: center; border-color: #5d85aa; border-style: solid; border-width: 1px; } .desc { font-family: Arial, Helvetica; font-size: 8pt; font-weight: bold; color: #5d85aa; background-color: #ffffff; text-decoration: underline; text-align: left; vertical-align: top; width: 100px; } .content { font-family: Arial, Helvetica; font-size: 8pt; font-weight: bold; color: #000000; background-color: #ffffff; text-decoration: none; text-align: left; width: 200px; } .input { font-family: Arial, Helvetica; font-size: 8pt; font-weight: bold; color: #808080; background-color: #ffffff; text-decoration: none; text-align: left; border-color: #808080; border-style: solid; border-width: 1px; } .ok { font-family: Arial, Helvetica; font-size: 8pt; font-weight: bold; color: #000000; background-color: #0dd208; text-decoration: none; text-align: center; border-color: #0a9306; border-style: solid; border-width: 1px; } .cancel { font-family: Arial, Helvetica; font-size: 8pt; font-weight: bold; color: #000000; background-color: #e63b3b; text-decoration: none; text-align: center; border-color: #b60b0b; border-style: solid; border-width: 1px; } table { width: 600px; } Zitieren Link zu diesem Kommentar
BuzzeR 10 Geschrieben 4. Januar 2006 Melden Teilen Geschrieben 4. Januar 2006 Und zum Schluß die JavaScript-Datei (mailer.js): // ---------------------------- // Mailing - Skript für CoolAce // von BuzzeR. // ---------------------------- function Data2Mail() { vfirma = document.mailer.firma.value; vvorname = document.mailer.vname.value; vnachname = document.mailer.nname.value; vtelefon = document.mailer.telefon.value; vemail = document.mailer.madresse.value; vbetreff = document.mailer.betreff.value; vmitteilung = document.mailer.mitteilung.value; var van = "CoolAce@gmx.de"; var urlStr = "" + van; var content = "&body="; // ------------------ // Firmennamen prüfen // ------------------ if( vfirma != "" ) { content += escape( "Firma: " + vfirma + '\n' ); } else { alert( 'Bitte Firmennamen eintragen!' ); document.mailer.firma.focus(); return false; } // --------------- // Vornamen prüfen // --------------- if( vvorname != "" ) { content += escape( "Vorname: " + vvorname + '\n' ); } else { alert( 'Bitte Vornamen eintragen!' ); document.mailer.vname.focus(); return false; } // ---------------- // Nachnamen prüfen // ---------------- if( vnachname != "" ) { content += escape( "Nachname: " + vnachname + '\n' ); } else { alert( 'Bitte Nachnamen eintragen!' ); document.mailer.nname.focus(); return false; } // -------------- // Telefon prüfen // -------------- if( vtelefon != "" ) { content += escape( "Telefon: " + vtelefon + '\n' ); } else { alert( 'Bitte Telefonnummer eintragen!' ); document.mailer.telefon.focus(); return false; } // ------------- // E-Mail prüfen // ------------- if( vemail != "" ) { if( vemail.indexOf('@') == -1 || vemail.indexOf('.') == -1 ) { alert ( "Eine gültige Emailadresse muss\nein '@' (At-Zeichen) und einen\n'.' (Punkt) enthalten." ); document.mailer.madresse.focus(); return false } content += escape( "E-Mail: " + vemail + '\n' ); } else { alert( 'Bitte E-Mail-Adresse eintragen!' ); return false; } // ------------------- // Mitteilung anhängen // ------------------- if( vmitteilung != "" ) { content += escape( "\nMitteilung:\n" + vmitteilung ); } else { alert( "Wollen Sie uns nichts mitteilen?" ); document.mailer.mitteilung.focus(); return false; } // ------------------ // Subject generieren // ------------------ if( vbetreff != "" ) { urlStr = buildUrl( urlStr ); urlStr += "subject=" + escape( vbetreff ); } else { urlStr += "?subject=Kontaktanfrage"; } location = 'mailto:' + urlStr + content; } function buildUrl( Str ) { var Str; if ( Str.indexOf("?") == -1 ) Str += "?"; else Str += "&"; return Str; } Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.