如何使用HTTPRequest在文本区域中打印换行符


How to print newline in a textarea using HTTPRequest?

我想在文本区使用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变成了这样:

&lt;a href=&#039;te&NewLine;st&#039;&gt;Test&lt;/a&gt

和它之间的textarea标签将像一个魅力。

但是你需要改变这个:

document.getElementById("txtwrite").value = xmlhttp.responseText;

这:

document.getElementById("txtwrite").html = xmlhttp.responseText;