我有一个文字区域
<textarea name="message" id="message" class="text_field" style="height:200px; width:500px"></textarea>
如果我在文本区域中输入数据
hello
this is my test message
bye
'abc'
我使用以下语句从文本区域获取数据
var message = $('#message').attr('value');
我将此值传递给其他php文件,如
var data = {message:message};
$.ajax({
type: "POST",
url: "show.php",
data: data,
etc
当我看到显示的post值firebug中的数据时,我输入数据(使用新的行和空格等) 并在PHP文件中
$message=$_POST['message'];
$Content = file_get_contents($temp_page);
$Content = str_replace('%%a%%', $message, $Content);
现在我使用
echo $Content
我在一行中得到的所有文字都不完全我在文本区域输入...
hello this is my test message bye 'abc'
由于
答案 0 :(得分:2)
这是因为浏览器不会在textareas或其他定义为打印输出的元素之外打印换行符,例如<pre>
。
您需要使用echo nl2br($Content);
替换带有<br />
元素的换行符,这相当于(x)HTML中的换行符。
答案 1 :(得分:1)
如果您直接回复浏览器,请尝试查看该页面的来源。您可能会发现浏览器将文本解释为HTML,在这种情况下,它将折叠您的所有空格和换行符。在理论上,查看源应该显示您最初输入的内容,包括换行符,额外空格等。
答案 2 :(得分:0)
想想如果你只输入一些HTML源代码会发生什么:
<p>
Hello there.
This is
my
HTML
source, and I hope
you
like it.
</p>
这是什么样的?是的 - 浏览器会将所有这些换行视为简单的空格,并将其全部展开,因为它会显示非空白字符。
当您转储textarea内容时(顺便说一句:获取$('#whatever').val()
的值),您正在做同样的事情。如果你想保留格式,那么,这可能是一件令人头疼的事。您可以尝试将其放在<pre>
块中,或者您可能必须明确查找换行符并将其转换为<br>
元素。
编辑:请参阅@ Tatu的答案,了解您想要的php函数。
答案 3 :(得分:0)
如果您右键单击并单击“查看源”(或某些近似的等效项),您应该会看到格式正确的文本。这是由于HTML的工作方式。即使您编写以下HTML:
hello
this is my test message
bye
'abc'
输出将是内联的。您必须在每行之后写入,或将文本包装在&lt; pre&gt;中。标签
答案 4 :(得分:0)
也许你可以试试:
nl2br($Content);