我想在文本区使用HTTPRequest属性打印换行符。下面是我的代码:
<script>
function htrt(str)
{
var xmlhttp;
//document.getElementById("txtwrite").innerHTML = str;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
document.getElementById("txtwrite").value = xmlhttp.responseText;
}
}
xmlhttp.open("GET","lecture.php?techtxt=" + str);
xmlhttp.send();
}
</script>
<textarea rows="9000" cols="9000" style="height: 200px; width: 725px;" id="txtwrite" readonly="readonly"></textarea>
<textarea cols="9000" rows="9000" name="txtname" style="height: 200px; width: 725px;" onkeyup="htrt(this.value)"></textarea>
下面是lecture.php代码:
<?php
$str=$_GET['techtxt'];
echo $str;
?>
在文本区不打印换行符。我使用了nl2br($string)函数来检查文本区域发生了什么,但它不起作用。请任何人帮帮我。
请使用div代替textarea。因为没有html标签在textarea标签中工作但是在div中它工作
nl2br()
函数将新行转换为br
标记。只要学好nl2br()
这个函数
在回显之前,使用PHP中的htmlspecialchars函数,将解决您的问题,从其他文本区添加新行。
一个带有编码字符串的jsfiddle测试:http://jsfiddle.net/gartz/5mEEQ/
:
<a href='te
st'>Test</a>
Will变成了这样:
<a href='te
st'>Test</a>
和它之间的textarea标签将像一个魅力。
但是你需要改变这个:
document.getElementById("txtwrite").value = xmlhttp.responseText;
这:
document.getElementById("txtwrite").html = xmlhttp.responseText;