【问题标题】:adding line break into javascript from php从 php 添加换行符到 javascript
【发布时间】:2023-03-29 04:36:01
【问题描述】:

请耐心等待,因为这并不容易解释。我在 MySQL 数据库中有一个字段,该字段是从带有 textarea 输入的表单中放在那里的。在我看来,换行符被编码为“/n”

当我检索数据时,我可以使用以下 php 行将其正确显示在屏幕上

$main_article1 = str_replace("\n", "<br />", $row[main_article]);
echo $mainarticle1;

然而,棘手的问题来了。然后我想将该文本插入到使用 Javascript 的滚动条中。

该脚本中的代码是:

var pausecontent=new Array()

pausecontent[0]='<?php echo $main_article1;?>'

我只是得到一个空白屏幕。

如果我从数据库中的文本中删除换行符,一切正常 - main_article 文本应出现在滚动条中 - 只有在换行符存在时才会停止工作。

有谁知道如何让数据库字段中的换行符通过 PHP 脚本并出现在 Javascript 的滚动文本中?

我也试过了:

$main_article1 = str_replace("/n>", "%0D%0A", $row[main_article]);

但这也不起作用

我希望我已经理解了我正在尝试做的事情。

非常感谢。

这里有更新

$main_article = 'This is a test<br />This is a test'

js中php生成的代码应该是:

pausecontent[0]='This is a test<br />This is a test'

(全部变灰)但我得到的是:

pausecontent[0]='This is a test
This is a test'

JS代码中的换行导致它失败,因为换行后文本不再灰显

【问题讨论】:

  • 错误日志中有什么内容吗?有什么理由不使用nl2br 函数?整个页面是空白还是只是 JS 没有执行,如果只是 JS 控制台中的任何内容?
  • 第一步:检查生成的 JS 代码——看起来应该是这样吗?
  • 我使用 nl2br 函数得到了相同的结果。页面加载正常,但 JS 没有运行。如果我输入没有换行符的文本,则 JS 运行良好
  • OK JS 代码错误。它有换行符,而应该只有
    标签。如果我用
    标签手动替换换行符它可以工作 - 但用 php 做它不起作用

标签: javascript php str-replace line-breaks


【解决方案1】:

你可以试试 nl2br() 函数

$main_article1 = nl2br($row[main_article]);

我还建议在您的代码和结束 php 标记 (?&gt;) 之间留一个空格

pausecontent[0]='<?php echo $main_article1; ?>'

【讨论】:

  • 这两种方法都试过了,但问题仍然存在
【解决方案2】:

终于明白了,头疼了这么多天!

我正在寻找错误的替代理论

答案是使用以下行:

$main_article1 = preg_replace("/\r\n|\r|\n/",'<br/>',$row[main_article]);

现在可以完美运行了。

感谢大家的帮助。

问候

【讨论】:

  • 只需使用nl2br,无需重新发明函数。 Returns string with '&lt;br /&gt;' or '&lt;br&gt;' inserted before all newlines (\r\n, \n\r, \n and \r).php.net/manual/en/function.nl2br.php
  • @chris85 这不起作用,因为它在其他标签前面插入了“
    ”标签,但我需要完全删除任何“/r/n”实例,这就是为什么 preg_replace函数确实在 nl2br 函数不起作用的地方起作用。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-05
  • 2015-10-22
相关资源
最近更新 更多