如何使用HTTP请求在textarea中打印新行?

时间:2013-01-05 07:11:51

标签: php html ajax textarea

我想使用HTTPRequest属性在textarea中打印换行符。 这是我的代码:

<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>

这是讲话.php代码:

<?php
$str=$_GET['techtxt'];
        echo $str;
?>

它不会在textarea中打印换行符。我使用了nl2br($ string)函数来检查textarea中发生了什么,但它不起作用。 请有人帮帮我。

2 个答案:

答案 0 :(得分:0)

在回复它之前,使用PHP中的htmlspecialchars函数,将使用来自其他textarea的新行解决您的问题。

带有编码字符串的jsfiddle测试:http://jsfiddle.net/gartz/5mEEQ/

此:

<a href='te
st'>Test</a>

威尔成了这个:

&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;

答案 1 :(得分:0)

请使用div而不是textarea。因为没有html标签在textarea标签中工作,但在div中它正在工作。

此功能nl2br()会将新行转换为br标记。只要好好学习这个功能nl2br()