Textarea setzt automatisch zeilenumbrüche

fanste

Erfahrenes Mitglied
Hallo.
Da bin ich mal wieder mit einem weiteren Problem :D.

Ich habe auf meiner HP eine Textarea mit einer Länge von 75 Zeichen.
Wenn man nun etwas in die Area hineinschreibt, wird der Text automatisch gebrochen. Das ist ja schön und gut.
Wenn ich den Text dann aber via PHP ausgebe, also
echo nl2br($_POST['TEXT']);,
setzt es mir an den stellen, wo der Text automatisch gebrochen wurde ein Break. Dieser ist im Quelltext aber nicht zu sehen, sondern nur auf der Seite in Form von 2 Zeilen sichtbar.
Eigentlich soll der Text OHNE Umbruch auf der Seite erschenen, muss der Browser halt seine Scrollleiste aufbauen, aber genau dass geschieht nicht.

Nun die Fragen:

Warum setzt der Browser mir da Zeilenumbrüche?
Wie mache ich das, dass nur dort Zeilenumbrüche gesetzt werden, wo ich auch auf Enter drücke

Hich hoffe alles ist verständlich erklärt.

Im Voraus schonmal Danke für euro Hilfe

mb fanste

PS: mit wrap="virual" funktioniert die ganze sache nicht. wenn ich wrap="off" schreibe, gibt es mir gar keine Zeilenumbrüche mehr aus
 
fanste hat gesagt.:
Nun die Fragen:

Warum setzt der Browser mir da Zeilenumbrüche?
Wie mache ich das, dass nur dort Zeilenumbrüche gesetzt werden, wo ich auch auf Enter drücke

Hallo,

hab mir dass mal schnell nach gebaut und bei mir funktioniert alles wie es soll.

mfg
forsterm
 
bei mir aber irgendwie nicht. Wie genau hast du das gemacht Hast du eine der wrap paramenter verwendet
 
echo nl2br($_POST['TEXT']);

nl2br

(PHP 3, PHP 4 , PHP 5)
nl2br -- Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein.

Daraus folgt:
PHP:
echo $_POST['TEXT'];

und die Zeilenumbrüche sollten verschwunden sein. Hoffe das ich dich richtig verstanden hab und du die wech haben wolltest.
Gruß Steff

P.s. Oh sehe gerade hatte was überlesen du kannst nur an allen Zeilenumbrüchen nen <br> bekommen oder halt keine. Die Zeilenumbrüche die beim Enterstehen sind ja nicht anders makiert als die automatischen. Alternativ kannst du natürlich den automatischen Zeilenumbruch im textarea ausschalten und dann musst du halt jeden Zeilenumbruch von Hand machen und hast somit auch nur die gewünschten.
 
Zuletzt bearbeitet:
Hallo,

hab dieses Beispiel verwendet:

Code:
<html>
<head>
</head>
<body>
<form method="POST" action="<?=$PHP_SELF?>">
 <p><textarea rows="13" name="text" cols="39"></textarea></p>
 <p><input type="submit" value="Absenden" name="B1"></p>
</form>
</body>
</html>
<?=nl2br($_POST['text'])?>

mfg
forsterm
 
So gehts au, ist halt nur nervig auf dauer. Wie wird soetwas denn dann eigentlich hier gemacht?
Wenn da mal der Code über die länge der Textarea geht, wird der ja bei der Ausgabe auch nicht einfach überall gebrochen, sondern nur da, wo man will.

Um euch mal mein Problem genauer ansehen zu können, hier der Link.
http://administration.ad.funpic.de/forum_test.htm
Gebt dort mal nen langen Code ein. Hier hab ich mal ebbes, bei dem es nicht klappt:
(PHP)
<?
$text = preg_replace("<div style="width:500px;height:100px;">des_soll_weg","<div style="width:500px;height:100px;"",$text);
?>
(/PHP)

Ersetzt die Runden Klammern bei dem PHP durch eckige
wenn ihr auch mal den PHP code braucht, sagt es.

mb fanste
 
Zuletzt bearbeitet:
Hallo,

kann es sein, dass du das meinst?

Code:
<html>
<head>
</head>
<body>
<form method="POST" action="<?=$PHP_SELF?>">
 <p><textarea rows="13" name="text" cols="39" wrap="off"></textarea></p>
 <p><input type="submit" value="Absenden" name="B1"></p>
</form>
</body>
</html>
<?=nl2br($_POST['text'])?>

mfg
forsterm
 
Hm Ok, Problem erkannt :-) der setzt die Textumbrüche die man selbst macht gar nicht um. Da musst du denke ich in deiner Form dieses hier setzten: enctype="text/plain"
dann könnte es funktionieren musste mal ausprobieren.
Gruß Steff
 
Hi!

Es passt doch alles. PHP baut nicht einen einzigen Zeilenumbruch ein, wenn ich keinen setze. Allerdings bricht der Browser (logischerweise, wie bei allen anderen Fließtexten auch) am rechten Rand um. Das kannst du mit CSS ändern. Setze deinen Text einfach in folgenden Code:
Code:
<div style="white-space:nowrap">Dein Text</div>

Mamphil
 
@forsterm :
1. Ja so in etwa sieht meins aus, wenn man den Code drumherum weglässt :D
2. Also meinen Code habe ich getrennt. Die html Datei mit dem Eingabefeld und dann die PHP
datei, die das gesendete dann ausgibt.

@steff aka sId:
Wo genau muss ich dass setzen?
 
Zurück