# mehrzeiliger String



## PsychoCat (13. August 2004)

Hallo!
Ist es möglich in javascript mehrzeilige strings in einer Variable zu speichern? Wenn ich folgendes probiere, kommt immer der Fehler "nicht abgeschlossene Zeichenfolgenkonstante":
test = ("erste Zeile
zweite Zeile");

Zum Hintergrund:
Ich lese einen Text mit php aus einer Datenbank aus und dieser ist eben mehrzeilig, soll aber in javascript verwendet werden.


----------



## Krypthonas (13. August 2004)

Öhm ja das geht. Du kennst ja sicherlich von PHP das Verbindungsobjekt ".".
So, genau das selbe gibt es auch für *JavaScript*, nur heist es da "+".

Theoretisch müsste das funktionieren:

```
$string="Das ist mein Text
Und noch viel mehr";

$string=str_replae("\n","' \n + '",$string);
$string.="var variable='" . $string."';";

//gibt aus:
//var variable='Das ist mein Text'
//+ 'Und noch viel mehr'
//+ '';
```
Ich hoffe du hast das Prinzip verstanden. Ich habe es lange nicht mehr angwandt, hatte aber funktioniert. Notfalls löschst du einfach die Zeilenumbrüche(physisch).

In diesem Sinne


----------



## PsychoCat (13. August 2004)

Also Danke erstmal, aber das funktioniert nicht so ganz.
Ausgegeben wird dann:
var variable='Das ist mein Text
' 
+ 'Und noch viel mehr';


----------



## Sven Mintel (13. August 2004)

Wie immer von mir der gleiche Tipp

arbeite in PHP mit rawurlencode(), und in Javascript mit unescape()

```
<script type="text/javascript">
<!--
test = unescape("<?php echo rawurlencode($textMitZeilenumbruch);?>");
//-->
</script>
```


----------



## PsychoCat (14. August 2004)

Ja, das klappt schonmal, vielen Dank bis hierher!
Aber gibt es auch eine Möglichkeit den String dann anschließend wieder mit seinen ganzen Zeilenumbrüchen und Leerzeichen auszugeben?

Ich möchte nämlich gerne einen Text aus einer Datenbank auslesen und den dann als Parameter einer js-Funktion verwenden, in der er dann woanders ausgegeben wird. Also letztendlich gäbe es dann einen link, der beim anklicken bewirkt, dass der Text, der ihm zugewiesen ist (dynamisch per php), an einem anderen Ort ausgegeben wird. Ich hoffe das war nicht zu umständlich formuliert


----------



## Sven Mintel (14. August 2004)

Durch unescape() erhält er die Zeilenumbrüche doch zurück

Da Zeilenumbrüche innerhalb von HTML-Code in der Regel nicht im Dokument dargestellt werden, musst du den Text in bspw. <pre> ausgeben...da werden sie dargestellt.

Oder machs per nl2br()....damit wiederholte Leerzeichen dargestellt werden, musst du diese weiterhin durch &amp;nbsp;ersetzen.


----------

