我正在尝试将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的字符串之一:
<p>Ik ben onweer. ROMMELDEBOMMEL!</p>
<p>Ik ben donker en duister maar ook heel belangrijk voor de natuur.</p>
<p>ofzoiets... geen zin. lat0rzzzzzzzzzzzzzzzzzzzzzz</p>
这是荷兰语,但我认为你明白了。
编辑:我尝试使用'linebreaks'问题中建议的方法,但代码仍然中断。这是它输出的代码:
contentList.push("<p>Ik ben onweer. ROMMELDEBOMMEL!</p>"+
"<p>Ik ben donker en duister maar ook heel belangrijk voor de natuur.</p>"+
"<p>ofzoiets... geen zin. lat0rzzzzzzzzzzzzzzzzzzzzzz</p>");
编辑#2:我在JS控制台中发现了这个错误“Uncaught SyntaxError:Unexpected token ILLEGAL”
编辑#3:切换到AJAX方法。这使得这个脚本过时了。谢谢你的帮助。 ;)
答案 0 :(得分:1)
问题是Javascript字符串必须以同一行开头和结尾,除非您转义换行符。因此,您需要删除换行符(如果它们不重要,只需删除,否则请替换为\n
或<br />
或任何对您的上下文有意义的内容。
信息:http://www.willmaster.com/blog/javascript/strings-line-breaks.php
答案 1 :(得分:1)
Javascript字符串不能包含其中的换行符 - 请查看How do I break a string across more than one line of code in JavaScript?以了解各种方法。
答案 2 :(得分:1)
您要使用json_encode
吗?
答案 3 :(得分:1)
尝试使用此功能
http://de3.php.net/manual/en/function.nl2br.php
或:
str_replace("\n","");
如果你想在js中保持代码行中断,字符串中的每一行都必须以\n\
结束
var string = 'test\n\
\n\
testtestest\n\';