Der Martin: DB -> JS -> Textarea

Beitrag lesen

Hallo Jörg,

ich ermittle einen Wert aus der DB und stelle ihn in HTML dar.

mit PHP? Ich hab das mal als weiteres Tag dazugenommen.

Funktioniert das mit der Mehrzeiligkeit denn hier? - Für den HTML-Kontext müsstest du die Zeilenumbrüche ja durch <br> ersetzen. Das tut z.B. die PHP-Funktion nl2br().
Oder nein, sie ersetzt nicht \n durch <br>, sondern \n durch <br>\n.

Apropos: Wie werden denn die Zeilenumbrüche im Originalstring in der DB codiert? Üblich ist entweder ein Linefeed (\x0A) oder die Kombination CR+LF (\x0D\x0a). Ohne weitere Behandlung würden diese Zeichen in HTML aber nur als Leerzeichen angezeigt.

Zugleich ist er über einen Button anklickbar, sodaß er dann in eine Textarea per onclick-event eingesetzt werden soll.

Das heißt, das Javascript liest den Text wieder aus dem DOM-Textknoten? Damit stellt sich zum zweiten Mal die Frage: Wie bereitest du den String für die HTML-Anzeige auf, und was tust du, um die <br> beim Übertragen in die Textarea wieder zu echten Zeilenumbrüchen zu machen? Denn dort werden sie wieder so codiert, wie ich eingangs beschrieben habe. Ob nur LF oder CR+LF, weiß ich nicht sicher - ich meine letzteres.

Das klappt nicht, wenn der Wert in der DB mehrzeilig ist, weshalb ich dachte, dass ich den Wert mit javascript_escape() behandeln könnte.

Wie Rolf schon fragte: Wo ist diese Funktion her? Was genau tut sie?

Naja, es hilft insofern, als dass meine Javascriptfunktion keinen Fehler mehr wirft. Aber dafür steht dann in der Textarea anstelle des Zeilenumbruchs auch ein \n.

Dann scheint diese Funktion Zeilenumbrüche durch die Sequenz Backslash, Kleinbuchstabe n zu ersetzen. Das nützt dir aber für die Textarea nichts.

Wie geht man sowas an?

Indem du erstmal zeigst, was du wirklich hast und tust. Ich habe dich schon mehrmals kritisiert, weil deine Problembeschreibungen meistens nicht genug Information enthalten. Insbesondere keine klar nachvollziehbaren Codeauszüge und/oder Debug-Ausgaben.

Einen schönen Tag noch
 Martin

--
"Was sind denn das für Beeren?" - "Das sind Blaubeeren." - "Warum sind sie dann rot?" - "Weil sie noch grün sind."