怎么javascript发送空行到PHP?

时间:2015-01-22 16:18:27

标签: javascript php xmlhttprequest

我写了一个这样的演示:

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script type="text/javascript">
    window.onload = init;

    function init() {
        var btn = document.getElementById('submit');
        btn.onclick = function() {
            var str = document.getElementById('testText').value;
            alert(str);
            var xmlHttp = new XMLHttpRequest();
            var url = 'test.php?str=' + str;
            xmlHttp.onreadystatechange = function(){
                var str = xmlHttp.responseText;
                document.getElementById('testText').value = str.toLocaleUpperCase();

            };
            xmlHttp.open('GET', url, true);
            xmlHttp.send(null);
        };

    }
</script>
</head>
<body>
    <form action="test.php" method="POST">
        <textarea name="testText" id="testText" cols="30" rows="10"></textarea>
    <input type="button" value="submit" id="submit">
    </form>
</body>
</html>

它向服务器发送一个GET,并且php只返回它得到的内容,然后js用大写显示它(写这个因为系统要求我写更多的代码细节) 我在textarea标签中写了一些文字,如

write some thing

write other thing

,输出

WRITE SOME THING WRITE OTHER THING

但我希望保留空行,并期望像这样输出

WRITE SOME THING

WRITE OTHER THING

我该怎么办?

2 个答案:

答案 0 :(得分:0)

您可以使用NewLine character entity,可以使用以下任意一种方式表达:

  
&NewLine;
&#x0000A;
&#10;

像这样:

write some thing&NewLine;write other thing

...或:

write some thing&#x0000A;write other thing

...或:

write some thing&#10;write other thing

演示

&#13;
&#13;
<textarea>write some thing&NewLine;write other thing</textarea>

<textarea>write some thing&#x0000A;write other thing</textarea>

<textarea>write some thing&#10;write other thing</textarea>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

将数据发送到PHP时,需要将文本转换为URL格式。

var url = 'test.php?str=' + encodeURIComponent(str);

将PHP输出到HTML文档时,需要将文本转换为HTML。

大多数元素不会将空白视为重要元素,因此您需要将新行转换为换行符元素或执行其他类型的格式设置。 (一般来说,你想要使用更智能的东西,比如Markdown语法,但我会在这个简单的例子中使用nl2br):

<div>
<?php
    $data = $_GET['str'];
    $safe_data = htmlspecialchars($data);
    $formatted_data = nl2br($safe_data);
    echo $formatted_data;
?>
</div>

或者,如果要输出到具有重要空格的元素

<textarea>
<?php
    $data = $_GET['str'];
    $safe_data = htmlspecialchars($data);
    echo $safe_data;
?>
</textarea>