php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Führende Leerzeile


 
Astrominus
14-06-2003, 13:49 
 
Hallo

Ich habe eine Textarea, über diese Text in die DB geschrieben wird.

Dabei tritt folgendes Problem auf.

Gibt man in der Textarea eine führende Leerzeile ein, so wird diese zwar in die DB geschrieben, aber beim wiederauslesen, nicht wieder in der Textarea angezeigt.

Gebe ich 2 Leerzeilen vor dem eigentlichen Text ein, so wird zumindest eine davon in der Textarea angezeigt.

Aber ich möchte, das bei eingabe einer führenden Leerzeile, diese beim wiederauslesen auch in der Textarea angezeigt wird.

Weiss vielleicht jemand eine Lösung meines kleinen Problems ???
(Sofern es eine gibt)

 
Günni
14-06-2003, 14:21 
 
Wenn du die Daten aus einer DB liest musst du die Leerzeilen mit hilfe von nl2br() wieder darstellen.

 
Astrominus
14-06-2003, 14:28 
 
Danke mal, aber soweit war ich schon, nur leider zeigt er mir dann in der Textarea das "<br />" auch an, und das möchte ich nach möglichkeit nicht.

Mach ich innerhalb des Textes einen Zeilenumbruch, so funktioniert es da doch auch, warum nicht bei einem Zeilenumbruch am Anfang:confused:

 
Nezzar
14-06-2003, 14:33 
 
Probier mal dies auf den String bevor du ihn die DB schreibst:

preg_replace("/^\n/", "\n\n", $der_string);

 
graf
14-06-2003, 14:35 
 
ändere doch mal die wrap eigenschaft der textarea

 
Astrominus
14-06-2003, 14:41 
 
Habe ich beides gerade getestet, nur leider bringt das auch nichts:(

Hier im Board kann mann übrigens auch keine Zeilenumbrüche VOR dem Text machen.
Aber da wird wohl irgendwo die "Trim-Funktion" zum Einsatz kommen, das ist bei mir nicht der Fall.

 
Astrominus
14-06-2003, 15:46 
 
Das scheint ein HTML-Problem zu sein.

Sorry wenn ich es ins falsche Forum gesetzt habe:rolleyes:
Hier mal ein kleines Beispiel zum selbst testen;)

<form action="<? echo $self_php ?>" method="post">
<textarea name="test" wrap="physical"><? echo "$test ?></textarea>
<input type="submit">
</form>

Gibt mann nun einen Zeilenumbruch ein und danach Text, so wird nach dem absenden der Zeilenumbruch gelöscht.
Bei 2 Zeilenumbrüchen am Anfang wird zumindest einer überommen.

Aber eine kleine Lösung habe ich gefunden.
Bevor es in die Textarea geschrieben wir, habe ich folgenden Code gesetzt.

$pos = strpos($string,"\n");
if($pos==1)
{
$string="\n".$string;
}

Steht am Anfang des Stringes nun also ein Zeilenumbruch, so wird einfach noch einer vorangehängt.
Das funktioniert bis jetzt prima:)

 
wahsaga
14-06-2003, 19:27 
 
haste schon mal versucht, das
wrap="physical"
rauszulassen aus der definition der textarea?

 
Astrominus
14-06-2003, 19:39 
 
Ja hatte ich auch schon.

Mit wrap, ohne wrap, verschiedene Atribute, immer das gleiche.
Der erste Zeilenumbruch (sofern er am Anfang steht) wird nicht übernommen (Warum auch immer)

Aber mit dem kleinen Trick oben, funktioniert es nun trotzdem wie ich wollte:)

 
Günni
15-06-2003, 01:38 
 
Und welcher kleiner Trick war das???

 
TobiaZ
15-06-2003, 01:47 
 
@günni: falls es dich wirklich interessiert, dann lies doch einfach den ganzen tread und frag nicht einfach nur. schließlich hats dich bis jetzt auch nicht gekümmert!

Aber eine kleine Lösung habe ich gefunden.
Bevor es in die Textarea geschrieben wir, habe ich folgenden Code gesetzt.

PHP:--------------------------------------------------------------------------------
$pos = strpos($string,"\n");
if($pos==1)
{
$string="\n".$string;
}

--------------------------------------------------------------------------------
Steht am Anfang des Stringes nun also ein Zeilenumbruch, so wird einfach noch einer vorangehängt.
Das funktioniert bis jetzt prima

 
Astrominus
15-06-2003, 11:10 
 
Original geschrieben von Astrominus
Aber eine kleine Lösung habe ich gefunden.
Bevor es in die Textarea geschrieben wir, habe ich folgenden Code gesetzt.

$pos = strpos($string,"\n");
if($pos==1)
{
$string="\n".$string;
}

Steht am Anfang des Stringes nun also ein Zeilenumbruch, so wird einfach noch einer vorangehängt.
Das funktioniert bis jetzt prima:)
;) :D
#EDIT
Uuuuuups, ich habe den Beitrag von Tobiaz übersehen:rolleyes:

Sorry:rolleyes: :rolleyes: :rolleyes:

 
Günni
15-06-2003, 14:36 
 
Sorry, muss ich vor lauter eile gestern überlesen haben.

 
TobiaZ
15-06-2003, 22:05 
 
wers glaubt!

 
weserweb
24-09-2003, 00:57 
 
@ Astrominus,

stiess heute auf dasselbe problem.

ich habe deine lösung übernommen.

funktioniert bisher ohne probleme. danke!


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:21 Uhr.