javascript 如何将空行发送到 php?
how javascript send blank line to php?
我写了这样一个demo:
<!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只是return它得到什么,然后js用大写显示(写这个是因为系统让我写更多的代码细节)
我在 textarea
标签中写了一些文本,比如
write some thing
write other thing
输出为
WRITE SOME THING WRITE OTHER THING
但我想保留空白行,并期望这样的输出
WRITE SOME THING
WRITE OTHER THING
我该怎么办?
可以使用NewLine character entity,可以使用以下任意一种表示:




像这样:
write some thing
write other thing
...或者:
write some thing
write other thing
...或者:
write some thing write other thing
演示
<textarea>write some thing
write other thing</textarea>
<textarea>write some thing
write other thing</textarea>
<textarea>write some thing write other thing</textarea>
当您将数据发送到 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>
我写了这样一个demo:
<!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只是return它得到什么,然后js用大写显示(写这个是因为系统让我写更多的代码细节)
我在 textarea
标签中写了一些文本,比如
write some thing
write other thing
输出为
WRITE SOME THING WRITE OTHER THING
但我想保留空白行,并期望这样的输出
WRITE SOME THING
WRITE OTHER THING
我该怎么办?
可以使用NewLine character entity,可以使用以下任意一种表示:

 

像这样:
write some thing
write other thing
...或者:
write some thing
write other thing
...或者:
write some thing write other thing
演示
<textarea>write some thing
write other thing</textarea>
<textarea>write some thing
write other thing</textarea>
<textarea>write some thing write other thing</textarea>
当您将数据发送到 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>