PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [HTML/CSS/JS] Leerzeilen aus Textarea zu <br>



VMS1
21.11.2008, 11:05
Hallo,

ich sitze seit Stunden an einem Problem. Ich habe auf einer Seite ein Formular mit einer textarea. In dieser textarea gebe ich nun Text ein und möchte, das dieser Text, wenn ich einen Link unter der Textbox klicke, in einem neuen PopUp-Fenster angezeigt wird.
Dazu lese ich erstmal das Textfeld vom PopUp aus mit parent.opener ein. Soweit auch kein Problem. Das Fenster geht auf und der Text wird angezeigt. Auch Zeilenumbrüche habe ich (zumindest versucht) mit replace durch <br> ersetzt. Aber irgendwie funktioniert das nur, wenn in einer Zeile auch Text steht. Wenn ich 2 Leerzeilen zwischen 2 Absätze reinmache interessiert das das Script irgendwie nicht und er schreibt die beiden Absätze direkt untereinander.

Ich bearbeite den String folgendermassen :

var text2 = text.replace(/\r\n/g, "\n");
var text3 = text2.replace(/\n\r/g, "\n");
var text4 = text3.replace(/<br>\n/g, "\n");
var text5 = text4.replace(/[^>]\n/g, '<br>');

Eigentlich müßte das doch hinhauen oder? Ich habe mittlerweile etliche Kombinationen probiert und ohne Hilfe komm ich da glaub ich nicht weiter. Javascript ist nicht gerade mein Spezialgebiet.

Gruß
Marco

EarlofMidnight
21.11.2008, 12:47
Probier mal nicht mit <br> sondern mit <p> und </p> zu arbeiten. Alles was dazwischen steht ist als Absatz definiert.

Gruß

EarlofMidnight

VMS1
21.11.2008, 12:57
Mit <p>?

Also ich möchte wie gesagt, das das Javascript Leerzeilen aus dem Eingabeformular erkennt und dann durch <br> ersetzt. Ich mein, klar, könnte man das auch durch <p> ersetzen, aber es geht ja erstmal darum, das die leerzeilen mit übernommen werden.

Ich gebe Beispielsweise folgenden Text in dem Textfeld auf der Seite ein :


TestTest
Test

Test


Test

Unter dem Textfeld ist ein Link. Wenn ich den klicke öffnet sich ein neues zunächst leeres PopUp-Fenster in dem der Inhalt des Textfeldes ausgelesen werden soll und in dem leeren Popup zeilenformatiert wieder ausgegeben werden soll. Die Zeilenumbrüche aus dem Textfeld wird in den Zeilen, wo auch Text steht, ordnungsgemäß umgewandelt. Aber halt die Leerzeilen nicht:


TestTest
Test
Test
Test

Das ist das, was hinterher in dem PopUp steht.

Oder hab ich mit dem <p> was falsch verstanden?^^

Lokutos
21.11.2008, 14:11
schau dir doch mal im vms die texte zum bearbeiten im adminforce an
da geht das ja auch



<?
// Variabeln
$filename = '../lib/texte/aktivralley.txt';
if (!isset($_POST['updaten'])) $_POST['updaten'] = '';
if (!isset($_POST['text'])) $_POST['text'] = '';

// Datei schreiben
if ($_POST['updaten'] == 'Updaten !') {
$_POST['text'] = str_replace('\\', '', $_POST['text']);
$fp = fopen ($filename, "w");
fwrite ($fp, $_POST['text']);
fclose ($fp);
}

// Datei auslesen
$fp = fopen ($filename, "r");
$inhalt = @fread ($fp, filesize ($filename));
fclose ($fp);
$inhalt = str_replace('\\', '', $inhalt);
?>

<?head("Aktivralleyeinleitung bearbeiten (html erlaubt!)");?>
<div align="center">
<form action="" method="post">
<textarea name="text" style="width:500px; height:300px;"><?=$inhalt;?></textarea><br>
<input type="Submit" name="updaten" value="Updaten !">
</form>
</div>
<?foot();?>

Gremlin
21.11.2008, 14:20
nl2br in Javascript



function nl2br (str, is_xhtml) {
// http://kevin.vanzonneveld.net
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + improved by: Philip Peterson
// + improved by: Onno Marsman
// + improved by: Atli Þór
// + bugfixed by: Onno Marsman
// * example 1: nl2br('Kevin\nvan\nZonneveld');
// * returns 1: 'Kevin<br />\nvan<br />\nZonneveld'
// * example 2: nl2br("\nOne\nTwo\n\nThree\n", false);
// * returns 2: '<br>\nOne<br>\nTwo<br>\n<br>\nThree<br>\n'
// * example 3: nl2br("\nOne\nTwo\n\nThree\n", true);
// * returns 3: '<br />\nOne<br />\nTwo<br />\n<br />\nThree<br />\n'

breakTag = '<br />';
if (typeof is_xhtml != 'undefined' && !is_xhtml) {
breakTag = '<br>';
}

return (str + '').replace(/([^>]?)\n/g, '$1'+ breakTag +'\n');
}

http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_nl2br/

VMS1
21.11.2008, 15:34
@Joschi: Danke, aber das hier ist Javascript. Das hat leider rein gar nichts mit der Übergabe von $_GET oder $_POST-Variablen zu tun. Sonst wär´s ja auch zu einfach^^

@gremlin: Den Code, sowie einige andere, hab ich auf meiner Suche auch schon gefunden. Bewirkt aber leider auch nur das, was ich jetzt schon habe.

Ich kann ja mal den Quelltext posten, soweit ich ihn bis jetzt habe:

*EDIT* Hat sich gerade erledigt. Ich hab´s hinbekommen. In den vars text - text4 ist ein Syntax-Fehler gewesen. Au mann!

Trtzdem Danke für eure Hilfe