Sascha: mailto: Funktion schreibt nicht die gewünschten Werte

Hi Community.

Ich habe ein Problem mit einem Formular und meiner JavaScript Funktion.

Mein Ziel ist es, dass ich per Funktion den Inhalt eines Formulars auslesen und formatiert übergeben möchte, da mir die Art und Weise wie die mailto: Funktion den Inhalt versendet zu unübersichtlich ist.

Das ist dazu die Funktion:

function action() {  
		var mail = "mailto:sascha.bohr@ottogroup.com";  
		var subject = "?subject=Test";  
		var body = "&body=TEEEST";  
		  
		document.formular.action = mail + subject + body;  
	}

Der Inhalt von Body wird dann zukünftig natürlich die Werte auslesen, aber dies ist erstmal nur ein Test.
Die Funktion action() ist bestandteil der Funktion checkFormular().

function checkFormular() {  
	  
		//-- Check des Melders  
		if (document.formular.Melder_Vorname.value == "") {  
			alert("Bitte den Vornamen des Melders/NWBs angeben!");  
			document.formular.Melder_Vorname.focus();  
			return false;  
		}  
		  
		if (document.formular.Melder_Nachname.value == "") {  
			alert("Bitte den Nachnamen des Melders/NWBs angeben!");  
			document.formular.Melder_Nachname.focus();  
			return false;  
		}  
		  
		//-- Dateneingabe des internen oder externen prüfen?!  
		if (document.formular.aw_firma[0].checked == true) {  
			checkIntern();  
		} else {  
			checkExtern();  
		}  
		  
		action();  
	}

gestartet werden soll das ganze nach dem "abschicken".

<form name="formular" action="" method="post" enctype=text/plain onsubmit="return checkFormular()">

Ich bekomme dann letztendlich die Mail zugesandt, es übernimmt auch den Betreff aus der Funktion action(), aber der Inhalt der Mail ist weiterhin der Standartinhalt des Formulars und nicht der übergebene Wert.

Ich sehe meinen Fehler hier einfach nicht.
Kann mir jemand weiter helfen?

Vielen Dank im vorraus, Gruß Sascha

  1. Hi,

    Mein Ziel ist es, dass ich per Funktion den Inhalt eines Formulars auslesen und formatiert übergeben möchte, da mir die Art und Weise wie die mailto: Funktion den Inhalt versendet zu unübersichtlich ist.

    Du meinst als Attachment, leer oder schlichtweg gar nicht? Tja, das hängt im Wesentlichen vom installierten Mailclient ab. Bei mir zu Hause heißt das also gar nicht, weil ich keinen Mailclient installiert habe.

    Das ist dazu die Funktion:

    Eine, in denen die Zeichenfolge "mailto:" nicht (und auch nicht in verschlüsselter oder sonstiger Form) vorkäme, wäre um einiges zielführender, da sie zwangsläufig serverseitig wäre.

    Die Funktion action() ist bestandteil der Funktion checkFormular().

    ... und hat einen äußerst ungünstig gewählten Namen.

    Ich bekomme dann letztendlich die Mail zugesandt,

    Nicht von mir oder vielen anderen. Und von weiteren anderen bekommst Du sie in anderer Form.

    der Inhalt der Mail ist weiterhin der Standartinhalt des Formulars und nicht der übergebene Wert.

    Du hast ja auch nichts dagegen unternommen, dass dies passiert - abgesehen davon natürlich, dass Du ein mailto-Formular einsetzt, bei dem jedes denk- und undenkbare Ergebnis vorkommt.

    Ich sehe meinen Fehler hier einfach nicht.

    mailto-Formular.

    Kann mir jemand weiter helfen?

    Serverseitiger Formmailer.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Kann mir jemand weiter helfen?

      Serverseitiger Formmailer.

      Cheatah

      Eine Serverseitige Verarbeitung ist leider nicht möglich, da die Infrstruktur dies nicht zulässt.
      Es geht hier um ein kleines Formular, welches ich in der Firma einsetzen möchte.
      Hier hat jeder User einen Mailclient, daher ist die mailto Funktion in Ordnung.

      1. Hi,

        Es geht hier um ein kleines Formular, welches ich in der Firma einsetzen möchte.

        und diese klitzekleine Information wolltest Du uns wann geben? Wenn Du nach einem Rezept für Coq au Vin fragst ist es durchaus von Belang, wenn Du Kantinenkoch bist und 2.500 Portionen herstellen musst.

        Hier hat jeder User einen Mailclient, daher ist die mailto Funktion in Ordnung.

        Du schickst nach wie vor das Formular ab. Unterbinde dies.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. Hi there,

    Ich sehe meinen Fehler hier einfach nicht.
    Kann mir jemand weiter helfen?

    was passiert eigentlich bei dem Browser, mit dem Du testest, wenn Du

    mailto:sascha.bohr@ottogroup.com?subject=Test&body=TEEEST

    direkt in die Adresszeile eingibst? Steht dann TEEEST im Body oder wieder nur der Standar"d"inhalt?

    1. Hi there,

      Ich sehe meinen Fehler hier einfach nicht.
      Kann mir jemand weiter helfen?

      was passiert eigentlich bei dem Browser, mit dem Du testest, wenn Du

      mailto:sascha.bohr@ottogroup.com?subject=Test&body=TEEEST

      direkt in die Adresszeile eingibst? Steht dann TEEEST im Body oder wieder nur der Standar"d"inhalt?

      Also wenn ich es direkt eingebe, dann steht dort als Body "TEEST", also so wie ich es dem Browser übergebe.
      (Ich teste übrigens mit mehreren Browser, aktuell mit IE7 und Firefox 3.5.6)

      Sobald ich das über die Submit Funktion des Formulares mache, überschreibt mir das Formular den vorkonfigurierten Body.
      Und genau das ist mein Problem, dass er nur den von mir vorgegebenen Body nimmt und nichts "selber" aus dem Formular ausliest.

      Gruß Sascha

      1. Hi there,

        Sobald ich das über die Submit Funktion des Formulares mache, überschreibt mir das Formular den vorkonfigurierten Body.
        Und genau das ist mein Problem, dass er nur den von mir vorgegebenen Body nimmt und nichts "selber" aus dem Formular ausliest.

        Wenn Du Formularfelder verwendest, die "submit" und "body" heissen, dann funktionierts. Die können im Formular ja leer bleiben und erst in Deiner Funktion mit Javascript befüllt werden...

        1. Hi there,

          Sobald ich das über die Submit Funktion des Formulares mache, überschreibt mir das Formular den vorkonfigurierten Body.
          Und genau das ist mein Problem, dass er nur den von mir vorgegebenen Body nimmt und nichts "selber" aus dem Formular ausliest.

          Wenn Du Formularfelder verwendest, die "submit" und "body" heissen, dann funktionierts. Die können im Formular ja leer bleiben und erst in Deiner Funktion mit Javascript befüllt werden...

          Vllt habe ich mich unklar ausgedrückt oder kann deinen Ansatz noch nicht nachvollziehen.

          Ich habe ein Formular, wo mir ein Anwender mehrere Fragen beantworten muss (die Felder also mit Werten füllen muss, wie z.B. seinen Namen).
          Danach drückt er auf einen Button zum versenden, dieser ist von Typ type="submit".

          Sobald dieser Button betätigt wird soll meine Funktion aufgerufen werden, dies geschieht ja über den Weg onsubmit.
          <form name="formular" action="" method="post" enctype=text/plain onsubmit="return checkFormular()">

          Aktuell wird mir dann eine Mail zugesendet, die sich aus der Funktion action()

          function action() {  
          		var mail = "mailto:sascha.bohr@ottogroup.com";  
          		var subject = "?subject=Test";  
          		var body = "&body=TEEEST";  
          		  
          		document.formular.action = mail + subject + body;  
          	}
          

          meine Mailadresse zieht, über subject mir den Betreff schreibt, ABER nicht den Body übernimmt. Den überscheibt er mir und ich bekomme das normale Formular geschickt.
          Das hat so ca diesen Stil:

          Melder_Vorname=Max
          Melder_Nachname=Mustermann
          Aw_Firma=HC
          etc.
          etc.

          Dort sollte egtl aktuell dann nur TEEEST stehen.

          Gruß Sascha

          1. Hi there,

            Vllt habe ich mich unklar ausgedrückt oder kann deinen Ansatz noch nicht nachvollziehen.

            Es gibt für Dein Problem zwei Möglichkeiten, nur beide zusammen funktionieren nicht:

            Entweder, Du sendest Dein Formular ab (mit submit), dann musst Du subject und body als Inputfelder angeben. Oder aber, Du wertest einfach das Formular aus, sendest es aber NICHT ab sondern gibst die zusammengesetzte URL mit location.href=.... weiter. Beides zusammen geht nicht.

            function action() {

              var mail = "mailto:sascha.bohr@ottogroup.com";  
              var subject = "?subject=Test";  
              var body = "&body=TEEEST";  
                
              document.formular.action = mail + subject + body;  
            

            }

              
              
            Dein Code könnte also lauten:  
              
            ~~~javascript
              
              
            location.href=document.formular.action;  
              
            
            

            zuvor musst Du allerdings achten, daß Deine Funktion checkFormular() false zurückgibt, sonst wird Dein Formular abgesandt.
            Die Alternative wäre eben, das Formular abzusenden mit den (richtig benannten) Inputfeldern...

            1. Hi there,

              Vllt habe ich mich unklar ausgedrückt oder kann deinen Ansatz noch nicht nachvollziehen.

              Es gibt für Dein Problem zwei Möglichkeiten, nur beide zusammen funktionieren nicht:

              Entweder, Du sendest Dein Formular ab (mit submit), dann musst Du subject und body als Inputfelder angeben. Oder aber, Du wertest einfach das Formular aus, sendest es aber NICHT ab sondern gibst die zusammengesetzte URL mit location.href=.... weiter. Beides zusammen geht nicht.

              function action() {

                var mail = "mailto:sascha.bohr@ottogroup.com";  
                var subject = "?subject=Test";  
                var body = "&body=TEEEST";  
                  
                document.formular.action = mail + subject + body;  
              }
              
              
              >   
              >   
              > Dein Code könnte also lauten:  
              >   
              > ~~~javascript
                
              
              >   
              > location.href=document.formular.action;  
              >   
              > 
              
              

              zuvor musst Du allerdings achten, daß Deine Funktion checkFormular() false zurückgibt, sonst wird Dein Formular abgesandt.
              Die Alternative wäre eben, das Formular abzusenden mit den (richtig benannten) Inputfeldern...

              Super, danke.
              Ich habe es jetzt so gelöst, dass ich den Versandt durch einen festen false Wert unterdrücke und über location.href=document.formular.action; das Formular bearbeitet verschicke.

              Danke für den Anstoß im Kopfe ;)

              1. Super, danke.
                Ich habe es jetzt so gelöst, dass ich den Versandt durch einen festen false Wert unterdrücke und über location.href=document.formular.action; das Formular bearbeitet verschicke.

                Danke für den Anstoß im Kopfe ;)

                Mist...zu früh gefreut.
                Offenbar sind es ihm zu viele Zeichen, so dass die URI zu lang wird und er das Script abbricht.
                Muss ich mir wohl doch ne andere Lösung einfallen lassen.

          2. Hallo Sascha,

            eine Ungereimtheit ist mir aufgefallen:

            <form name="formular" action="" method="post" enctype=text/plain onsubmit="return checkFormular()">

            ^ hier post

            function action() {

              var mail = "mailto:sascha.bohr@ottogroup.com";  
              var subject = "?subject=Test";  
            

            ^ und hier get!

              var body = "&body=TEEEST";  
                
              document.formular.action = mail + subject + body;  
            

            }

              
              
              
            Gruß, Jürgen  
            
            
            1. Hallo Jürgen,

              <form name="formular" action="" method="post" enctype=text/plain onsubmit="return checkFormular()">
                                                           ^ hier post

              function action() {

                var mail = "mailto:sascha.bohr@ottogroup.com";  
                var subject = "?subject=Test";
              
              
              >                                   ^ und hier get!  
                
              grundsätzlich ist es hier nicht sinnvoll, überhaupt POST oder GET anzugeben, denn das Formular wird bei der Angabe von mailto: als action ja überhaupt nicht per HTTP verschickt. Deswegen ist das hier wurscht.  
                
              Aber selbst bei einem "richtigen" Formular, das per POST verschickt wird, können noch URL-Parameter im action-Attribut notiert werden. Das ist kein Widerspruch!  
                
              So long,  
               Martin  
              
              -- 
              Heutzutage gilt ein Mann schon dann als Gentleman, wenn er wenigstens die Zigarette aus dem Mund nimmt, bevor er eine Frau küsst.  
                (Barbra Streisand, US-Schauspielerin)  
              
              
              1. Hallo Der,

                .... Das ist kein Widerspruch!

                daher schrieb ich ja auch "Ungereimtheit"; ich wollte einfach nur beim Rätselraten mitmachen.

                Ich lasse übrigens das form-Tag ganz weg, wenn ich die Formularfelder nur mit Javascript behandle.

                Gruß, Jürgen

                1. Hallo,

                  .... Das ist kein Widerspruch!
                  daher schrieb ich ja auch "Ungereimtheit"; ich wollte einfach nur beim Rätselraten mitmachen.

                  ach so. Ich dachte, du hättest aus Unwissenheit oder Unverständnis so reagiert.

                  Ich lasse übrigens das form-Tag ganz weg, wenn ich die Formularfelder nur mit Javascript behandle.

                  Ja, das hätte ich Sascha hier auch empfohlen, wenn ich früher auf diesen Thread aufmerksam geworden wäre.

                  Ciao,
                   Martin

                  --
                  Lieber blau machen, als sich schwarz ärgern.
                  1. Ich lasse übrigens das form-Tag ganz weg, wenn ich die Formularfelder nur mit Javascript behandle.

                    Ja, das hätte ich Sascha hier auch empfohlen, wenn ich früher auf diesen Thread aufmerksam geworden wäre.

                    Ciao,
                    Martin

                    Wie hättet ihr das denn ohne das form-Tag gelöst?

                    Gruß Sascha

                    1. Hallo,

                      Wie hättet ihr das denn ohne das form-Tag gelöst?

                      Na z.B. mit <fieldset> oder <div> oder was immer statt <form>, und mit normalem Button statt Submit-Button und mit normalem onklick-Handler statt onsubmit-Handler und ohne post oder get. Einen mailto-String kannst du auch location.href direkt zuweisen ohne form-action.

                      Man wirft ja auch nicht einen Brief in den Briefkasten und lauert dann dem Postmensch auf, nur um ihn ihm wieder wegzunehmen und statt dessen eine andere Nachricht auf ganz anderem Weg zu verschicken...

                      Gruß, Don P

                      1. Hi,

                        Man wirft ja auch nicht einen Brief in den Briefkasten und lauert dann dem Postmensch auf, nur um ihn ihm wieder wegzunehmen und statt dessen eine andere Nachricht auf ganz anderem Weg zu verschicken...

                        das ist ein sehr passender Vergleich! Besser hätte ich's auch nicht treffen können. :-)

                        Ciao,
                         Martin

                        --
                        F: Was ist schneller: Das Licht oder der Schall?
                        A: Offensichtlich der Schall. Wenn man den Fernseher einschaltet, kommt immer erst der Ton, und dann erst das Bild.
                      2. Hi Folks,

                        Hallo,

                        Wie hättet ihr das denn ohne das form-Tag gelöst?

                        Na z.B. mit <fieldset> oder <div> oder was immer statt <form>, und mit normalem Button statt Submit-Button und mit normalem onklick-Handler statt onsubmit-Handler und ohne post oder get. Einen mailto-String kannst du auch location.href direkt zuweisen ohne form-action.

                        Man wirft ja auch nicht einen Brief in den Briefkasten und lauert dann dem Postmensch auf, nur um ihn ihm wieder wegzunehmen und statt dessen eine andere Nachricht auf ganz anderem Weg zu verschicken...

                        Gruß, Don P

                        okay, dass hatte ich sowieso schon so untergliedert, allerdings alles innerhalb des form-Tags, da mir das als bester Weg erschien das Formular zu übergeben.

                        Wenn ich jetzt das form-Tag weglasse und stattdessen meinem Button vom type="submit" auf type="button" ändere, dann habe ich aber doch nur die Möglichkeit meinem mailto-String an location.href zu übergeben, oder liege ich da falsch?

                        Das aktuelle Problem ist ja, dass meine Zeichenkette zu lang ist, so dass der Browser (sowohl IE7 als auch Firefox 3.5.6) mein Script abbricht und keine Mail versendet wird.
                        Kürze ich den mailto-String, so ist alles kein Problem mehr und funktioniert wunderbar.
                        Allerdings sind die Werte alle unabdingbar, also wird der String zwanghaft so lang.

                        Gruß Sascha

                        1. Hallo,

                          okay, dass hatte ich sowieso schon so untergliedert, allerdings alles innerhalb des form-Tags, da mir das als bester Weg erschien das Formular zu übergeben.

                          Der beste Weg ist nunmal, die Daten vom Server mailen zu lassen. http://de.selfhtml.org/html/formulare/verarbeiten.htm@title=Zitat: "Es ist also ein Glücksspiel, ob der Formularversand via E-Mail bei Ihren Seitenbesuchern klappt oder nicht. Um das Problem zu umgehen, können Sie einen öffentlichen CGI-Service für so genannte Form-Mailer in Anspruch nehmen."

                          Wenn ich jetzt das form-Tag weglasse und stattdessen meinem Button vom type="submit" auf type="button" ändere, dann habe ich aber doch nur die Möglichkeit meinem mailto-String an location.href zu übergeben, oder liege ich da falsch?

                          Denke das stimmt.

                          Das aktuelle Problem ist ja, dass meine Zeichenkette zu lang ist, so dass der Browser (sowohl IE7 als auch Firefox 3.5.6) mein Script abbricht und keine Mail versendet wird.

                          ?subject=Test";var body = "&body=TEEEST"
                          ist nur zu lang? Kaum zu glauben.

                          Kürze ich den mailto-String, so ist alles kein Problem mehr und funktioniert wunderbar.

                          Jetzt funktioniert es plötzlich wunderbar? Verstehe gar nichts mehr.

                          Allerdings sind die Werte alle unabdingbar, also wird der String zwanghaft so lang.

                          Wieso willst du dann unbedingt get-Parameter schicken, wenn so ein String dafür eh zu lang wird?

                          Gruß, Don P

                          1. Hi Folks,

                            bald ist die Verwirrung perfekt ;)

                            Hallo,

                            okay, dass hatte ich sowieso schon so untergliedert, allerdings alles innerhalb des form-Tags, da mir das als bester Weg erschien das Formular zu übergeben.

                            Der beste Weg ist nunmal, die Daten vom Server mailen zu lassen. http://de.selfhtml.org/html/formulare/verarbeiten.htm@title=Zitat: "Es ist also ein Glücksspiel, ob der Formularversand via E-Mail bei Ihren Seitenbesuchern klappt oder nicht. Um das Problem zu umgehen, können Sie einen öffentlichen CGI-Service für so genannte Form-Mailer in Anspruch nehmen."

                            Ich habe hier leider nicht die Möglichkeit dies über eine serverseitige Abfrage zu verschicken, da das Formular in der Firma eingesetzt wird und die nötige Berechtigung/Infrastuktur nicht besteht.
                            Aber jeder Seitenbesucher hat einen Mailclient installiert!

                            Wenn ich jetzt das form-Tag weglasse und stattdessen meinem Button vom type="submit" auf type="button" ändere, dann habe ich aber doch nur die Möglichkeit meinem mailto-String an location.href zu übergeben, oder liege ich da falsch?

                            Denke das stimmt.

                            Wenigstens etwas ^^

                            Das aktuelle Problem ist ja, dass meine Zeichenkette zu lang ist, so dass der Browser (sowohl IE7 als auch Firefox 3.5.6) mein Script abbricht und keine Mail versendet wird.

                            ?subject=Test";var body = "&body=TEEEST"
                            ist nur zu lang? Kaum zu glauben.

                            Nein, so funktioniert es wunderbar, was auch die Antwort auf dein nächsten Kommentar wäre!
                            Ich habe jetzt "&body=TEEEST" mit dem richtigen Inhalt gefüllt, den ich aus den Formularen ausgelesen habe. Danach ist er erst zu lang.

                            Kürze ich den mailto-String, so ist alles kein Problem mehr und funktioniert wunderbar.
                            Jetzt funktioniert es plötzlich wunderbar? Verstehe gar nichts mehr.

                            siehe oben.

                            Allerdings sind die Werte alle unabdingbar, also wird der String zwanghaft so lang.
                            Wieso willst du dann unbedingt get-Parameter schicken, wenn so ein String dafür eh zu lang wird?

                            Gruß, Don P

                            Deshalb war meine Ursprungslösung ja mit "post", allerdings überschreibt er mir dann immer meinen durch JS formatierten Inhalt durch den "orginalen" unformatierten.

                            Gruß Sascha

                    2. Hallo Sascha,

                      Wie hättet ihr das denn ohne das form-Tag gelöst?

                      so.

                      Zugriff auf die Eingabeelemenete per document.getElementById oder document.getElementsByTagName. In meinem Beispiel wird die Auswertefunktion über den onchange-Handler aufgerufen, der Button ist hier nur Dekoration. Du müsstest deine Auswertefunktion über den onclick-Handler des Buttons aufrufen.

                      Gruß, Jürgen

                      1. Hi Folks,

                        Hallo Sascha,

                        Wie hättet ihr das denn ohne das form-Tag gelöst?

                        so.

                        Zugriff auf die Eingabeelemenete per document.getElementById oder document.getElementsByTagName. In meinem Beispiel wird die Auswertefunktion über den onchange-Handler aufgerufen, der Button ist hier nur Dekoration. Du müsstest deine Auswertefunktion über den onclick-Handler des Buttons aufrufen.

                        Gruß, Jürgen

                        In dieser Funktion übergibst du die Werte aber an keine mailto Funktion.
                        Und mein einziges Problem ist ja, dass ich die Werte formatiert per Mail ohne serverseitige Verarbeitung verschicken möchte.

                        Gruß Sascha

                        1. Hallo Sascha,

                          In dieser Funktion übergibst du die Werte aber an keine mailto Funktion.

                          natürlich nicht. Die Seite ist ja nur ein Beispiel dafür, wie man auf Formularelemenete zugreifen kann, ohne ein Formular zu benutzen.

                          Zu deinem Problem mir der gekürzten Mail: hast du schon mal geprüft, wo der String gekürzt wird? Wie lang ist denn der String und wird er immer auf die gleiche Länge gekürzt?

                          Gruß, Jürgen

                          1. Hallo,

                            Zu deinem Problem mir der gekürzten Mail: hast du schon mal geprüft, wo der String gekürzt wird? Wie lang ist denn der String und wird er immer auf die gleiche Länge gekürzt?

                            um das mal abzukürzen: Das ist vom OS und vom verwendeten Mailclient abhängig. Intern passiert ja nichts weiter, als das der Browser den im System konfigurierten Mailclient als externe Applikation aufruft und ihm die Parameter (subject, body) auf der Kommandozeile übergibt.

                            Windows begrenzt AFAIR die Länge der Kommandozeile auf rund 1000 Zeichen. Was länger ist, wird ignoriert.
                            Es bleibt außerdem dem Mailclient überlassen, ob er die Parameter überhaupt beachtet, und wenn ja, in welchem Umfang. Ein Grund mehr, warum der automatisierte clientseitige Mailversand mit Vorsicht zu genießen ist (ich wollte nicht sagen "Glückssache").

                            So long,
                             Martin

                            --
                            Treffen sich zwei Holzwürmer im Käse: "Na, auch Probleme mit den Zähnen?"
                          2. Hi Folks,

                            Hallo Sascha,

                            In dieser Funktion übergibst du die Werte aber an keine mailto Funktion.

                            natürlich nicht. Die Seite ist ja nur ein Beispiel dafür, wie man auf Formularelemenete zugreifen kann, ohne ein Formular zu benutzen.

                            Zu deinem Problem mir der gekürzten Mail: hast du schon mal geprüft, wo der String gekürzt wird? Wie lang ist denn der String und wird er immer auf die gleiche Länge gekürzt?

                            Gruß, Jürgen

                            Achso, ok.
                            Das mit dem auslesen klappt ja wunderbar, nur die "blöde Mail" will nicht so wie ich.

                            Ich habe jetzt einfach einen Teil meiner Abfrage (die den Body kreiert) als Kommentar markiert und ab einer bestimmten Länge schickt er die Mail dann.
                            Eine genaue Anzahl der Zeichen habe ich noch nicht geprüft, sind aber ca 200 Zeichen bei der Mail die er noch schickt.

                            Wenn der String zu lang ist, dann öffnet er gar nicht erst den Mailclient, sondern resetet einfach das gesamte Formular.

                            Gruß Sascha

                            1. Hallo Sascha,

                              warum lässt du das Formular nicht weg? Du willst doch keinen Formularinhalt an einen Server senden, sondern nur einen "mailto:..."-String erzeugen und an location.href übergeben. Da brauchst du kein Formular. Auch die Methoden "POST" und "GET" interessieren hier niemanden, da du über einen "LINK" nur das Mailprogramm des Klienten aufrufen willst. Ein Webserver spielt da gar nicht mit.

                              Gruß, Jürgen

                              1. Hi Folks,

                                Hallo Sascha,

                                warum lässt du das Formular nicht weg? Du willst doch keinen Formularinhalt an einen Server senden, sondern nur einen "mailto:..."-String erzeugen und an location.href übergeben. Da brauchst du kein Formular. Auch die Methoden "POST" und "GET" interessieren hier niemanden, da du über einen "LINK" nur das Mailprogramm des Klienten aufrufen willst. Ein Webserver spielt da gar nicht mit.

                                Gruß, Jürgen

                                Vielleicht hilft es weiter, wenn ich mal das Formular poste.
                                Quelltext ist zu lang, deshalb habe ich es einfach mal hochgeladen.
                                Hier der Link dazu

                                Das Formular

                                Gruß Sascha

                                1. Hallo,

                                  warum lässt du das Formular nicht weg?

                                  Genau. Du willst es nicht so abschicken, wie es ist. Also schick es so nicht ab => kein form-Tag um die Eingabedaten. Du kannst es nicht mit get-Parametern abschicken, weil's dann zu lang ist. Also schick' es halt nicht mit get-Parametern ab.

                                  Du willst vielmehr die Daten formatieren und per post abschicken. Ok, dann tu das: Formatiere die Daten und schreibe das Endprodukt in ein unsichtbares Formular mit den Feldern namens "subject" und "body", und löse dann den submit-Event für dieses Formular aus. => es wird komplett per post abgeschickt und ist bereits formatiert.

                                  Ungetestet natürlich, könnte aber funktionieren... Für post-Daten gibt es meines Wissens keine Längenbegrenzung.

                                  Gruß, Don P

                                  1. Hallo Don,

                                    kann man Daten per "POST" an das Emailprogramm des Besuchers schicken? Es geht hier doch um "mailto:...".

                                    Gruß, Jürgen

                                    1. Hallo,

                                      kann man Daten per "POST" an das Emailprogramm des Besuchers schicken? Es geht hier doch um "mailto:...".

                                      Dass nehme ich an, wenn Sascha nicht gelogen hat, denn der schrub doch:

                                      Aktuell wird mir dann eine Mail zugesendet, die [...] über subject mir
                                      den Betreff schreibt, ABER nicht den Body übernimmt. Den überscheibt er
                                      mir und ich bekomme das normale Formular geschickt.
                                      Das hat so ca diesen Stil:

                                      Melder_Vorname=Max
                                      Melder_Nachname=Mustermann
                                      Aw_Firma=HC
                                      etc.
                                      etc.

                                      Also werden die Daten per "post" geschickt; in den get-Parametern hat er ja nur subject und body, wobei letzterer angeblich nicht geschickt wird, sondern statt dessen die Formulardaten.

                                      Gruß, Don P

                                      1. Hi Folks,

                                        Hallo,

                                        kann man Daten per "POST" an das Emailprogramm des Besuchers schicken? Es geht hier doch um "mailto:...".

                                        Dass nehme ich an, wenn Sascha nicht gelogen hat, denn der schrub doch:

                                        Aktuell wird mir dann eine Mail zugesendet, die [...] über subject mir
                                        den Betreff schreibt, ABER nicht den Body übernimmt. Den überscheibt er
                                        mir und ich bekomme das normale Formular geschickt.
                                        Das hat so ca diesen Stil:

                                        Melder_Vorname=Max
                                        Melder_Nachname=Mustermann
                                        Aw_Firma=HC
                                        etc.
                                        etc.

                                        Also werden die Daten per "post" geschickt; in den get-Parametern hat er ja nur subject und body, wobei letzterer angeblich nicht geschickt wird, sondern statt dessen die Formulardaten.

                                        Gruß, Don P

                                        Diesmal ist das Problem endgültig gelöst, vielen Dank an alle!

                                        Habe es jetzt über ein verstecktes textarea feld gelöst und dann mit der mailto-funktion im action-attribut.

                                        EEENDLICH :D

                                        Gruß Sascha

                                  2. Hi,

                                    Du willst vielmehr die Daten formatieren und per post abschicken.

                                    nein, will er nicht.

                                    Ok, dann tu das: Formatiere die Daten und schreibe das Endprodukt in ein unsichtbares Formular mit den Feldern namens "subject" und "body", und löse dann den submit-Event für dieses Formular aus. => es wird komplett per post abgeschickt und ist bereits formatiert.

                                    Gute Idee, im Prinzip. Hat nur einen Haken: Wie Sascha schon berichtete, fehlt ihm die Möglichkeit der serverseitigen Auswertung eines Formulars. Damit fällt POST ebenso aus wie GET, und das ist doch AFAIS der Grund, warum er so heftig am mailto-Konzept festhält - nur dass da eben die Länge systembedingt begrenzt ist.

                                    Also:
                                    GET    - Geht nicht, da serverseitige Auswertung nicht verfügbar
                                    POST   - Geht nicht, da serverseitige Auswertung nicht verfügbar
                                    mailto - Geht, aber nur mit stark eingeschränkter Datenmenge

                                    Was bleibt dann noch? Da gehen ihm langsam die Möglichkeiten aus.
                                    Ein Browser-Plugin schreiben, das selbst einen einfachen SMTP-Client enthält?
                                    Den Admin des Firmenserver kontaktieren, um serverseitige Möglichkeiten der Formularauswertung auszuloten? Wird vermutlich das Beste sein.

                                    So long,
                                     Martin

                                    --
                                    Auch mit eckigen Radios kann man Rundfunk hören.
                                    1. Gute Idee, im Prinzip. Hat nur einen Haken: Wie Sascha schon berichtete, fehlt ihm die Möglichkeit der serverseitigen Auswertung eines Formulars. Damit fällt POST ebenso aus wie GET, und das ist doch AFAIS der Grund, warum er so heftig am mailto-Konzept festhält - nur dass da eben die Länge systembedingt begrenzt ist.

                                      Also:
                                      GET    - Geht nicht, da serverseitige Auswertung nicht verfügbar
                                      POST   - Geht nicht, da serverseitige Auswertung nicht verfügbar
                                      mailto - Geht, aber nur mit stark eingeschränkter Datenmenge

                                      Was bleibt dann noch? Da gehen ihm langsam die Möglichkeiten aus.
                                      Ein Browser-Plugin schreiben, das selbst einen einfachen SMTP-Client enthält?
                                      Den Admin des Firmenserver kontaktieren, um serverseitige Möglichkeiten der Formularauswertung auszuloten? Wird vermutlich das Beste sein.

                                      So long,
                                      Martin

                                      Besser hätte ich es nicht zusammenfassen können.
                                      Was mich so wurmt ist die Tatsache, dass ich ein fremdes Formular vorliegen habe, wo es funktioniert.
                                      Dort wird über Javascript ausgelesen und die Daten einfach in das action-attribut im form-Tag die mailto funktion mit body geschrieben.
                                      Nur bei mir klappt es nicht, aber ich hab nicht die geringste Ahnung warum :/

                                      Gruß Sascha

                                2. Hallo Sascha,

                                  Das Formular

                                  bei  mir (FF 3.6.3 und Outlook 2007) wurden zwei Mails generiert: eine fast leere und eine komplette. Nur Wenn ich das Häkchen auch bei P4P mache, wird nur die fast leere Mail generiert.

                                  Warum du die Mail so

                                  	//-- Übergabe der Werte und versandt der Mail  
                                  	document.Formular.action = mail + subject + body;  
                                  	location.href = document.Formular.action;  
                                  

                                  verschickst, verstehe ich nicht, aber das ist dein Problem. Hier könntest du allerdings mal mit dem Debuggen anfangen, z.B mit einem alert von "mail + subject + body", und von "document.Formular.action".

                                  Gruß, Jürgen

                                  1. Hi Folks,

                                    Hallo Sascha,

                                    Das Formular

                                    bei  mir (FF 3.6.3 und Outlook 2007) wurden zwei Mails generiert: eine fast leere und eine komplette. Nur Wenn ich das Häkchen auch bei P4P mache, wird nur die fast leere Mail generiert.

                                    Das soll natürlich final nicht so bleiben, ich habe das lediglich gemacht, damit man das Problem sieht.
                                    Die fast leere Datei wird erzeugt durch den
                                    location.href = document.Formular.action;
                                    Code erzeugt. Darüber wollte ich als "Lösung" des Problem ja den kompletten Inhalt schicken, aber dann trat das Problem mit dem zu langen Text auf.

                                    Die zweite Mail ist mein Ursprungsproblem.
                                    Diese trägt zwar den gesamten Inhalt, den ich übergeben möchte, aber unformatiert.

                                    Gruß Sascha

                                    1. Hallo,

                                      Die zweite Mail ist mein Ursprungsproblem.
                                      Diese trägt zwar den gesamten Inhalt, den ich übergeben möchte, aber unformatiert.

                                      Ja, weil du nicht den Inhalt der Formularfelder direkt änderst (bzw. formatiertst), sondern einen separaten String mit dem formatierten Inhalt zusammenstellst. Der kann dann aber nicht per post geschickt werden (weil in keinem Feld) und auch nicht per get (weil zu lang).
                                      Du musst ihn also oben gesagt in ein Formularfeld namens "body" schreiben, und dieses Formular dann abschicken, nicht das vom Benutzer ausgefüllte.

                                      Gruß, Don P

                                      1. Hi Folks,

                                        Hallo,

                                        Die zweite Mail ist mein Ursprungsproblem.
                                        Diese trägt zwar den gesamten Inhalt, den ich übergeben möchte, aber unformatiert.

                                        Ja, weil du nicht den Inhalt der Formularfelder direkt änderst (bzw. formatiertst), sondern einen separaten String mit dem formatierten Inhalt zusammenstellst. Der kann dann aber nicht per post geschickt werden (weil in keinem Feld) und auch nicht per get (weil zu lang).
                                        Du musst ihn also oben gesagt in ein Formularfeld namens "body" schreiben, und dieses Formular dann abschicken, nicht das vom Benutzer ausgefüllte.

                                        Gruß, Don P

                                        Das werde ich jetzt mal ausprobieren.
                                        Gibt es eine Zeichenbegrenzung für ein Textarea?

                                        Gruß Sascha

                        2. Hallo,

                          Deshalb war meine Ursprungslösung ja mit "post", allerdings überschreibt er mir dann immer meinen durch JS formatierten Inhalt durch den "orginalen" unformatierten.

                          Soll das heißen, du kannst nicht in deiner Funktion checkFormular() die Felder irgendwie umformatieren bzw. es wird dann trotzdem per post die unformatierte Version abgeschickt? Das kann ich mir eigentlich nicht vorstellen.
                          Ich meine, wenn du einfach die ganze action()-Funktion mit dem get-Zeugs weglässt, müsste es doch gehen. Änderungen am Formularinhalt in checkFormular() sollten doch wirksam werden.

                          Gruß, Don P

                          1. Hi Folks,

                            Hallo,

                            Deshalb war meine Ursprungslösung ja mit "post", allerdings überschreibt er mir dann immer meinen durch JS formatierten Inhalt durch den "orginalen" unformatierten.

                            Soll das heißen, du kannst nicht in deiner Funktion checkFormular() die Felder irgendwie umformatieren bzw. es wird dann trotzdem per post die unformatierte Version abgeschickt? Das kann ich mir eigentlich nicht vorstellen.
                            Ich meine, wenn du einfach die ganze action()-Funktion mit dem get-Zeugs weglässt, müsste es doch gehen. Änderungen am Formularinhalt in checkFormular() sollten doch wirksam werden.

                            Gruß, Don P

                            So hatte ich mir das eigentlich gedacht, doch leider genau das passiert nicht.

                            Ursprungslösung war ja die, ich setze als Action Attribut die Mailtofunktion und übergebe das ganze per "post".

                            Aber ich schaffe es nicht, dass er mir den Inhalt der Formulare formatiert übergibt. Er hat mir dies immer überschrieben.

                            Gruß Sascha