Pijack: Zeilenumbruch bei <textarea>

Hallo Leute!

Bei der Textvorbelegung innerhalb einer <texarea> scheint der Zeilenumbruch ja nicht zu funktionieren. Wenn ich jedenfalls entsprechend das <br> setze wird es als "normaler" Text ausgegeben, anstatt eben an dieser Stelle den Umbruch zu machen.

Wenn ich die Zeilenumbrüche im Quelltext manuell eingebe ist die Darstellung zwar richtig; dies kann ich aber so leider nicht realisieren. Die Textvorbelegung ist bei mir nämlich variabel und wird per PHP-String übergeben.

Wie ich innerhalb von PHP einen Zeilenumbruch des Strings in <br> umwandle weiß ich bereits. Dies klappt z.B. innerhalb einer Tablelle auch einwandfrei. Nur eben der <textarea> kann wohl den <br> nicht interpretieren.

Das es geht habe ich übrigends gerade auf dieser Seite gesehen. Wenn man in diesem Forum eine Antwort schreibt wird ja auch das entsprechende Problem nochmal in der <textarea> angezeigt - und zwar teilweise mit Zeilenumbrüchen.

Nur wie geht das?

Danke im vorraus und beste Grüße!

  1. Hi,

    <html>
    <head>
    <title> New Document </title>
    </head>

    <body onLoad="document.forms[0].txtArea.value='Ich bin... \n umgebrochen'">
    <form>
    <textarea name="txtArea" rows="10" cols="40"></textarea>
    </form>
    </body>
    </html>

    Leider musst du es mit JS lösen....

    1. Leider musst du es mit JS lösen....

      Danke, super Info...

      ...aber wie kann ich die PHP-Variable in JS nutzen?

    2. Moin!

      <body>

      <form>

      <textarea name="txtArea" rows="10" cols="40">Ich bin...
      umgebrochen</textarea>

      </form>
      </body>
      </html>

      Leider musst du es mit JS lösen....

      Eben nicht.

      - Sven Rautenberg

      1. Moin!

        Leider musst du es mit JS lösen....

        Eben nicht.

        • Sven Rautenberg

        Sorry aber ich fürchte schon, Sven. Vielleicht nicht die einzige Möglichkeit aber wesentlich sinnvoller als Deine. Daß mir Dein Beitrag nämlich nicht so viel bringt könntest Du meiner ursprünglichen Problembeschreibung entnehmen.

        Nichts für Ungut und trotzdem

        Danke!

        1. Moin!

          Sorry aber ich fürchte schon, Sven. Vielleicht nicht die einzige Möglichkeit aber wesentlich sinnvoller als Deine. Daß mir Dein Beitrag nämlich nicht so viel bringt könntest Du meiner ursprünglichen Problembeschreibung entnehmen.

          Ich denke, du hast das Problem noch nicht vollständig erkannt.

          Also mal ein Beispiel (denk dir den Rest, um eine vollständige HTML-Seite zu erhalten, einfach dazu. :) ).

          <textarea name="text"><?php $derstring="Ich bin...\numbrochen"; echo $derstring; ?></textarea>

          Das sollte doch eigentlich zu folgendem HTML-Text führen:
          <textarea name="text">Ich bin...
          umbrochen</textarea>

          Und folglich einen Zeilenumbruch in der Textarea erzeugen.

          Wenn deine Werte, die in die Textarea kommen, flexibel sind, mußt du irgendwie dafür sorgen, daß Zeilenumbrüche drinsind,die Textarea wird keine selbsttätig für dich einfügen.

          - Sven Rautenberg

          1. Ja in meinem String waren tatsächlich keine Zeilenumbrüche enthalten - nicht mehr, genauer gesagt.

            Ursprünglich hatte ich natürlich einen formatierten Text. Vielleicht übermittelt die Variablenübergabe in Linkform keine Zeilenumbrüche.

            Na ja wie dem auch sei. Jetzt geht`s jedenfalls - ohne Linkübergabe halt.

            Danke!

            1. Moin!

              Ja in meinem String waren tatsächlich keine Zeilenumbrüche enthalten - nicht mehr, genauer gesagt.

              Tja, als ob ich es nicht geahnt hätte. :)

              Ursprünglich hatte ich natürlich einen formatierten Text. Vielleicht übermittelt die Variablenübergabe in Linkform keine Zeilenumbrüche.

              Das hängt davon ab, wie du diese Links gestaltet hast. Wenn du als Parameter beliebigen, vorher nicht näher bekannten Text anhängen willst, mutß du in PHP diesen Text url-codieren. Dazu gibts die Funktionen urlencode() und rawurlencode(). Was du als Ergebnis dieser Funktionen in den Link packst, kommt 100% beim anderen Skript an.

              Na ja wie dem auch sei. Jetzt geht`s jedenfalls - ohne Linkübergabe halt.

              Die alte Story: Wenn man's richtig mach, funktionierts auch. :)

              - Sven Rautenberg

  2. Moin!

    Bei der Textvorbelegung innerhalb einer <texarea> scheint der Zeilenumbruch ja nicht zu funktionieren. Wenn ich jedenfalls entsprechend das <br> setze wird es als "normaler" Text ausgegeben, anstatt eben an dieser Stelle den Umbruch zu machen.

    Wenn ich die Zeilenumbrüche im Quelltext manuell eingebe ist die Darstellung zwar richtig; dies kann ich aber so leider nicht realisieren. Die Textvorbelegung ist bei mir nämlich variabel und wird per PHP-String übergeben.

    Wenn du innerhalb einer Textarea einen Zeilenumbruch haben willst, dann mußt du an dieser Stelle einen ganz normalen Zeilenumbruch einfügen oder im String haben. Das sind die Dinger, die man mit der Funktion nl2br() dann in <br>s umwandelt.

    Wenn du <br> in die Textarea schreibst, dann bewegst du dich etwas auf illegalen wegen, denn die Winkel gehören eigentlich codiert ($lt;br>) - innerhalb einer Textarea gelten keine weiteren HTML-Tags, sondern werden als Zeichen ausgegeben.

    Das schöne ist: Wenn jemand in der Textarea mit Return Zeilenumbrüche einfügt, werden die auch als solche verschickt.

    Wenn dein System also ein Problem mit den Zeilenumbrüchen hat, dann liegt das einfach daran, daß du mit ihnen noch nicht gut umgehst. Faustregel: Zeilenumbrüche erst bei der Ausgabe in HTML in <br>s wandeln und auf jeden Fall original ohne Umwandlung irgendwo (Datenbank, Textdatei) abspeichern.

    - Sven Rautenberg