【问题标题】:PHP MySQL Fill Textarea with Text that contains newlines using jQueryPHP MySQL 使用 jQuery 用包含换行符的文本填充 Textarea
【发布时间】:2018-11-25 06:45:49
【问题描述】:

我有一个用户填写的表单,其中包含一个文本区域。此表单被上传到 MySQL 数据库,然后用户可以编辑信息。我遇到的问题是,当我使用 AJAX 为 textarea 建议数据时,无论出现换行符,javascript 都会给出“无效或意外令牌”错误。

在建议框中,它是一个包含类似行的列表...

<li onClick="selectBenefiting('$benefiting')">$benefiting</li>

而selectBenefiting()是这样写的……

function selectBenefiting(val) {
    $("#benefiting").val(val);
    $("#benefiting-sugg").hide();
}

任何人都可以在保留换行符的同时帮助我实现这一目标吗?我一直在寻找几个小时,虽然我看到其他人有同样的问题,但我还没有找到解决方案。

正如我所说,它是一个 MySQL 数据库。如果我使用 PHP 在 textarea 中回显数据,它会正确显示,所以我知道它在数据库中正确。问题是在使用 jQuery 和 AJAX 尝试填充 textarea 时。

任何帮助将不胜感激。

更新:

$benefiting_js = str_replace("\r\n", "\\r\\n", $benefiting);

Nick 稍作修改的解决方案起到了作用。

【问题讨论】:

  • 可以在客户端显示输出的 HTML 吗?

标签: javascript php jquery html mysql


【解决方案1】:

问题在于 Javascript 不喜欢字符串中的换行符。所以在你拥有它们的地方,你需要转义换行符。尝试类似

$benefiting_js = str_replace("\n", "\\n", $benefiting);

然后将您的 &lt;li&gt; 更改为

<li onClick="selectBenefiting('$benefiting_js')">$benefiting</li>

【讨论】:

  • 还必须包含 \r,但这成功了。谢谢尼克。
  • @FredJLangemarkIII \r\\r?我将编辑答案以更正它。
  • 我更新了问题以显示有效的方法。你就是那个男人。我在这方面工作了很长时间,专注于换行符,你的回答让我想起了返回符。
猜你喜欢
  • 2014-01-01
  • 1970-01-01
  • 2020-07-08
  • 1970-01-01
  • 2015-01-13
  • 2011-08-14
  • 1970-01-01
  • 2014-08-22
  • 2012-07-10
相关资源
最近更新 更多