Hallo,
mein erster Post im Forum und schon ne Frage
Ich bin dabei, mich in Ajax einzuarbeiten und wollte in dieser Lernphase ein paar Beispielcodes erstellen. Eines der Beispiele war eine "Preview" Funktion, welche auch recht gut funktioniert. Lediglich eines bereitet mir Kopfschmerzen, und nach ueber 2 Stunden googlen, SuFu nutzen, was immer noch nichts gebracht hat, wende ich mich doch an ein Forum.
Das Problem ist folgendes: Ich bringe es irgendwie nicht fertig, einen Zeilenumbruch in der <textarea> im "HTML" Teil durch <br> ersetzen zu lassen. Versucht habe ich es auf verschiedene Art und Weisen, welche ich untern noch erlaeutern werde. Erstmals die beiden Dateien:
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<html>
<head>
<title>Ajax Preview</title>
<script type="text/javascript">
var xmlhttp=false;
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
function ggnore(str) {
return str;
}
function ajax_call() {
xmlhttp.open("GET", 'export.php?text1=' + document.getElementById('text1').value , true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
val = xmlhttp.responseText;
val = val.replace(/\r/g, '');
val = val.replace(/[^>]\n/g, '<br />');
val = val.replace(/([^>])\n/g, '$1<br />')
val = val.replace(/\n*(<(br|p)>)\n*/g, '$1').replace(/\n/g,'<br>');
document.getElementById('commentPreview').innerHTML = val;
}
}
xmlhttp.send(null)
return false;
}
</script>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="" name="submit1">
<textarea rows="20" cols="40" id="text1" name="text1"></textarea><br /><br />
<input type="button" value="Preview" onclick="return ajax_call()" />
<div id="commentPreview">
<p>
</p>
</div>
</form>
</body>
</html>
Alles anzeigen
export.php
<?php
$text = $_GET['text1'];
$text2 = stripslashes($text);
$text3 = str_replace("\n", "<br />", $text2);
echo $text3;
?>
Wie man in der export.php sieht, habe ich schon verschiedenes versucht, aus einem \n ein <br /> zu machen. Auch in der index.php habe ich einige Beispielcodes, die ich ergoogled habe, eingefuegt, aber nichts davon brachte mir das erwuenschte Ergebnis. Einige Tests haben noch Spuren im Quelltext hinterlassen (function ggnore(str) { }), was aber nicht weiter dramatisch sein sollte
Die "eigentliche" Preview Funktion klappt wunderbar, allerdings funktionieren keine Zeilenumbrueche..Warum auch immer
Hat jemand einen Tip fuer mich, wie ich das bestmoeglichst realisieren kann? Ich bin derzeit mit meinem Latein am Ende und schon ziemlich am Verzweifeln.
Ein fettes Danke im Vorraus.
LG,
yuuki.