【问题标题】:How to POST back a textarea with enters?如何使用输入回发文本区域?
【发布时间】:2012-08-26 09:02:25
【问题描述】:

我有一个带有一些文本区域的 HTML / Javascript 页面。用户正在使用 enter 输入他们的文本以创建新行。问题出在表单通过 ajax(具有 jQuery 的功能)提交给 PHP 时。收到文本但没有回车。

如何将输入从 HTML 文本区域传递给 PHP?

在这种情况下,我在 POST 中。

textarea内容如下

asdf

éè ï

"

'

``

||

@£¢¤¬¦²³³

但 PHP 收到以下内容:

asdféè ï"'``||@£¢¤¬¦²³³

【问题讨论】:

  • 通过网络发送时文本区域的内容是什么?
  • 你能告诉我们jsfiddle.net上的行为示例
  • Textareas 会保留空格。你能说得更具体点还是给我们举个例子?
  • 你怎么知道输入没有发送?您是在网页中查看结果吗? (在这种情况下,所有“输入”都应替换为
    标签,以便浏览器可以将其呈现到新行)

标签: php javascript urlencode url-encoding


【解决方案1】:

您可能没有将换行符转换为断线:

echo nl2br($_POST['myTextArea']);

为了保证输出安全:

echo nl2br( htmlentities( $_POST['myTextArea'], ENT_QUOTES, "utf-8" ) );

【讨论】:

    【解决方案2】:

    enter keys 正在被保存,但它们被保留为 \n,在 HTML 中不会显示为换行符。您需要在网页中显示内容时执行nl2br()。这会将\n 换行符转换为<br> 并在浏览器中正确显示。

    【讨论】:

      【解决方案3】:

      这是我用来解决问题的 PHP 函数:

      rawurldecode(utf8_decode($_POST['myTextArea']))
      

      【讨论】:

        猜你喜欢
        • 2015-04-15
        • 2011-09-14
        • 2011-07-18
        • 1970-01-01
        • 1970-01-01
        • 2015-06-08
        • 2010-10-30
        • 1970-01-01
        相关资源
        最近更新 更多