Hallo Rolf,
weshalb ich dachte, dass ich den Wert mit javascript_escape() behandeln könnte.
Was ist das für eine Funktion? Die kenne ich weder in PHP noch in JavaScript.
Oh, hatte ganz vergessen, dass das keine php-Funktion ist.
/**
* Maskiert Sonderzeichen für den JavaScript-Kontext.
*
* @param $value string Der zu behandelnde Wert.
* @return string
*/
function javascript_escape($value)
{
return strtr((string)$value,array(
"'" => '\\\'',
'"' => '\"',
'\\' => '\\\\',
"\n" => '\n',
"\r" => '\r',
"\t" => '\t',
chr(12) => '\f',
chr(11) => '\v',
chr(8) => '\b',
));
}
Und ich stelle das in HTML einfach 1:1 wie aus der DB dar, also ohne nl2br().
Das onclick-event selber hat verschiedene Parameter, unter anderem eben javascript_escape($bemerkungen). Und da Bemerkungen in der DB mehrzeilig sein können, muss ich mich um die Zeilenumbrüche irgendwie "kümmern), denn wennn ich sie "raw" übergebe, erhalte ich einen JS-Fehler.
Edit:
Habe festgestellt, dass der Parameter anstelle der Zeilenumbrüche jeweils Doppelshlash n enthält.
Wenn ich die Funktio9n nun wie folgt umbaue, dann werden die Zeilenumbrüche in der Textarea korrekt dargestellt.
function javascript_escape($value)
{
return strtr((string)$value,array(
"'" => '\\\'',
'"' => '\"',
'\\' => '\\\\',
"\n" => '\n',
"\\n" => '\n',
"\r" => '\r',
"\t" => '\t',
chr(12) => '\f',
chr(11) => '\v',
chr(8) => '\b',
));
}
Jörg