Herby: Zeilenumbruch - formulare?

Hi @ all!

Ich möchte gerne auf meiner Homepage ein Formular bereitstellen, wo die Besucher ihr Kommentar schreiben können, dass dann per eMail versendet werden soll.

Ich möchte aber gerne, dass die Zeilenumbrüche, die von den Besuchern im Kommentarfeld gemacht wurden, auch in der eMail genauso aussehen, weil der kommentar sonst in einem gesendet wird, was ziemlich schwer zum Lesen ist.

HILFE!
Herby

  1. Ich möchte gerne auf meiner Homepage ein Formular bereitstellen, wo die Besucher ihr Kommentar schreiben können, dass dann per eMail versendet werden soll.

    Ich möchte aber gerne, dass die Zeilenumbrüche, die von den Besuchern im Kommentarfeld gemacht wurden, auch in der eMail genauso aussehen, weil der kommentar sonst in einem gesendet wird, was ziemlich schwer zum Lesen ist.

    Das kannst Du in dem Skript einstellen, das Du zum Versenden der Formulardaten benutzt. Du hast leider nicht angegeben, welches Du benutzt oder wie Dein selbstgeschriebenes aussieht, nichtmal welche Sprache Du für das Skript verwendest hast. Deshalb wird Dir auch niemand weiterhelfen können.

    Gruß,
      soenk.e

    1. Ich möchte gerne auf meiner Homepage ein Formular bereitstellen, wo die Besucher ihr Kommentar schreiben können, dass dann per eMail versendet werden soll.

      Ich möchte aber gerne, dass die Zeilenumbrüche, die von den Besuchern im Kommentarfeld gemacht wurden, auch in der eMail genauso aussehen, weil der kommentar sonst in einem gesendet wird, was ziemlich schwer zum Lesen ist.

      Das kannst Du in dem Skript einstellen, das Du zum Versenden der Formulardaten benutzt. Du hast leider nicht angegeben, welches Du benutzt oder wie Dein selbstgeschriebenes aussieht, nichtmal welche Sprache Du für das Skript verwendest hast. Deshalb wird Dir auch niemand weiterhelfen können.

      Gruß,
        soenk.e

      Sorry, hab das vergessen! Möchte JavaScript verwenden!

      gruß

      1. Ich möchte gerne auf meiner Homepage ein Formular bereitstellen, wo die Besucher ihr Kommentar schreiben können, dass dann per eMail versendet werden soll.

        Ich möchte aber gerne, dass die Zeilenumbrüche, die von den Besuchern im Kommentarfeld gemacht wurden, auch in der eMail genauso aussehen, weil der kommentar sonst in einem gesendet wird, was ziemlich schwer zum Lesen ist.

        Sorry, hab das vergessen! Möchte JavaScript verwenden!

        Mit Javascript lassen sich keine Mails versenden. Der Versand von Formulardaten geht _nur_ per Server-seitiger Sprache (zum Beispiel PHP, Perl) oder per Browser (action="mailto:.."). Letzteres funktioniert nicht immer und ist deshalb weniger empfehlenswert.

        Bei mehrzeiligen Textfeldern in Formularen ist weiterhin zu beachten, daß ein sichtbarer Zeilenumbruch auf dem Bildschirm nicht immer ein echter Zeilenumbruch in den Daten ist. Zeilenumbrüche werden nur da eingefügt, wo der Autor auch Return gedrückt hat.
        Zum Beispiel wird bei diesem Formular hier die Zeile automatisch umbrochen, damit immer alles zu sehen ist und eine Zeile immer die ganze Formularbreite ausfüllt, egal wie schmal oder breit man die Anzeigefläche macht. Das führt aber nicht dazu, daß im Text ein Zeilenumbruch vorhanden ist.

        Abhilfe bringt nur das Attribut wrap, auf das Frank schon hingewiesen hat, welches aber leider nicht im HTML-Standard ist.

        Alternativ kannst Du per allerdings in der Tat vor dem Absenden per Javascript alle x Zeichen einen Zeilenumbruch (\n) einfügen. Dazu benötigst Du Funktionen des string-Objektes, die in SelfHTML/Javascript beschrieben sind. Wie Du das anstellst, bleibt Deiner Phantasie überlassen. Man könnte zum Beispiel Leerzeichen suchen (indexOf) und, sobald man eines findet, daß weiter als x Zeichen vom Anfang entfernt ist, dort ein \n einfügen (Kombination aus substr-Aufrufen).

        Gruß,
          soenk.e

  2. Hi @ all!

    halo auch dir,

    das forum bietet auch eine nett suchfuntion :-)

    schau mal was cih nach zehn sekunden gefunden habe

    http://selfhtml.teamone.de/html/formulare/eingabe.htm#bereiche_umbruch

    funktioniert per css und ist auch auf alle blockelemente anwendbar.

    so long.

    frank

    1. Hi @ all!

      halo auch dir,

      das forum bietet auch eine nett suchfuntion :-)

      schau mal was cih nach zehn sekunden gefunden habe

      http://selfhtml.teamone.de/html/formulare/eingabe.htm#bereiche_umbruch

      funktioniert per css und ist auch auf alle blockelemente anwendbar.

      so long.

      frank

    2. <html><head><title>test</title>
      <script type="text/JavaScript">
      function eingabe()
      {
      var text = document.form.physical.value;
      document.write(text);
      }
      </script>
      </head><body>
      <form name="form">einmal physical:<br>
      <textarea name="physical" cols="30" rows="3" wrap="physical">
      </textarea></p>
      <input type="button" value="Meldung" onClick="eingabe()">
      </form>
      </body></html>

      Mit Alert stimmt der Zeilenumbruch, den ich gemacht habe, mit document.write ist wieder keiner da ...

      :(
      Herby

      1. <html><head><title>test</title>
        <script type="text/JavaScript">
        function eingabe()
        {
        var text = document.form.physical.value;
        document.write(text);
        }
        </script>
        </head><body>
        <form name="form">einmal physical:<br>
        <textarea name="physical" cols="30" rows="3" wrap="physical">
        </textarea></p>
        <input type="button" value="Meldung" onClick="eingabe()">
        </form>
        </body></html>

        Mit Alert stimmt der Zeilenumbruch, den ich gemacht habe, mit document.write ist wieder keiner da ...

        Das ist auch kein Wunder: In HTML gibt es keine Zeilenumbruchzeichen, da wird alles als Leerzeichen interpretiert. Bei normalen Texten ist das anders, dort werden die Bytes \n, \r oder \r\n (je nach Betriebssystem) als Zeilenumbruch interpretiert. Da alert() kein HTML annimmt, sondern nur normalen Text, siehst Du dort auch die einzelnen Zeilen.

        Wenn Du in HTML einen Umbruch haben willst, mußt Du entweder alle \n durch das HTML-Element <br> ersetzen oder den vorformatierten Text in einen <pre></pre>-Block schreiben.

        Gruß,
          soenk.e

        1. <html><head><title>test</title>
          <script type="text/JavaScript">
          function eingabe()
          {
          var text = document.form.physical.value;
          document.write(text);
          }
          </script>
          </head><body>
          <form name="form">einmal physical:<br>
          <textarea name="physical" cols="30" rows="3" wrap="physical">
          </textarea></p>
          <input type="button" value="Meldung" onClick="eingabe()">
          </form>
          </body></html>

          Mit Alert stimmt der Zeilenumbruch, den ich gemacht habe, mit document.write ist wieder keiner da ...

          Das ist auch kein Wunder: In HTML gibt es keine Zeilenumbruchzeichen, da wird alles als Leerzeichen interpretiert. Bei normalen Texten ist das anders, dort werden die Bytes \n, \r oder \r\n (je nach Betriebssystem) als Zeilenumbruch interpretiert. Da alert() kein HTML annimmt, sondern nur normalen Text, siehst Du dort auch die einzelnen Zeilen.

          Wenn Du in HTML einen Umbruch haben willst, mußt Du entweder alle \n durch das HTML-Element <br> ersetzen oder den vorformatierten Text in einen <pre></pre>-Block schreiben.

          Gruß,
            soenk.e

          ----------------------

          Das soll heißen, wenn ich zB sage
          var text = "'<pre>' + document.form.physical.value + '</pre>'"
          dann müssten die Zeilenumbrüche auch mit document.write dargestellt werden, oder habe ich einen Denkfehler?

          Vielen Dank für die Hilfe!
          Herby

          1. <html><head><title>test</title>
            <script type="text/JavaScript">
            function eingabe()
            {

            var text = "<pre><font face='Arial'>" + document.form.physical.value + "</font></pre>";

            document.write(text);
            }
            </script>

            <style type="text/css">
            <!--
            textarea { font-family:'Arial'; }
            -->
            </style>

            </head><body>
            <form name="form">einmal physical:<br>
            <textarea name="physical" cols="30" rows="3" wrap="physical">
            </textarea></p>
            <input type="button" value="Meldung" onClick="eingabe()">
            </form>
            </body></html>

            Habs getestet und funktioniert PERFEKT!
            Danke für die Hilfe! :) *freu*

            Herby

            1. Habs getestet und funktioniert PERFEKT!
              Danke für die Hilfe! :) *freu*

              Na, wieder jemanden glücklich gemacht, das ist doch schön :)

              Gruß,
                soenk.e