HTML文本转储到JavaScript数组破坏我的代码


HTML Text dumped to JavaScript array breaks my code

我正试图将PHP数组转储为JavaScript数组。(不使用任何额外的扩展)到目前为止,我已经设法使它转储它从数据库检索的文本项的ID和标题,但只要我试图转储文本项内容整个脚本中断。

<script type="text/javascript">
var idList=new Array();
var titleList=new Array();
var contentList=new Array();
<?php
foreach($list["id"] as $index => $value)
{
    $content = htmlentities($list["tekst"][$index], ENT_QUOTES);
    echo('idList.push('.$list["id"][$index].');');
    echo('titleList.push("'.$list["title"][$index].'");');
    //echo('contentList.push("'.$content.'");');
}
?>
</script>

打断整个脚本的行已被注释掉。这是推入contentList的其中一个字符串:

&lt;p&gt;Ik ben onweer. ROMMELDEBOMMEL!&lt;/p&gt;
&lt;p&gt;Ik ben donker en duister maar ook heel belangrijk voor de natuur.&lt;/p&gt;
&lt;p&gt;ofzoiets... geen zin. lat0rzzzzzzzzzzzzzzzzzzzzzz&lt;/p&gt;

是荷兰语,但我想你明白了。


EDIT:我尝试使用"换行符"问题中建议的方法,但代码仍然中断。下面是它输出的代码:

contentList.push("&lt;p&gt;Ik ben onweer. ROMMELDEBOMMEL!&lt;/p&gt;"+
"&lt;p&gt;Ik ben donker en duister maar ook heel belangrijk voor de natuur.&lt;/p&gt;"+
"&lt;p&gt;ofzoiets... geen zin. lat0rzzzzzzzzzzzzzzzzzzzzzz&lt;/p&gt;");

EDIT #2:我注意到这个错误在我的JS控制台"Uncaught SyntaxError: Unexpected token ILLEGAL"


EDIT #3:切换到AJAX方式。这使得这个脚本过时了。谢谢你们的帮助。div;)

问题将是Javascript字符串必须在同一行开始和结束,除非您转义换行字符。所以,你需要去掉换行符(如果它们不重要,就去掉,否则用'n<br />或任何对你的上下文有意义的替换。

信息:http://www.willmaster.com/blog/javascript/strings-line-breaks.php

Javascript字符串不能有像这样的换行符-看看我如何在Javascript中跨多行代码中断字符串?您可以通过多种方式修复它。

您要使用json_encode吗?

尝试使用这个函数

http://de3.php.net/manual/en/function.nl2br.php

或:

str_replace("'n","");

如果你想在js中保持代码换行,字符串中的每一行都必须以'n'

结束
var string = 'test'n'
'n'
              testtestest'n'';