【发布时间】:2014-09-04 18:15:14
【问题描述】:
这类似于PHP generated content inside Javascript breaking script,但是我无法理解我错在哪里。
这是简报。我正在尝试将 MySQL DB 中的 10 个字符串输出到 javascript 数组 s,(s[1] 到 s[10])(存储在 pt1 到 pt1 列下的一个 MySQL 表中 - 信息,因此代码对所有人来说都是可以理解的)。 (注意 $apos 只是撇号字符串 - 这里不是问题)。
<?php
echo "<script>\n";
echo "var s = [];\n";
for($i=1;$i<=10;$i++) {
echo "s[".$i."] = ".$apos.$r['pt'.$i].$apos.";\n";
}
echo "</script>";
?>
当我在浏览器中通过“查看源代码”查看源代码时,它会生成正确的代码:
<script>
var s = [];
s[1] = 'a';
s[2] = 'b';
.
.
s[10] = 'j';
</script>
但是,这不能作为脚本工作(这意味着如果我检查 Google 开发人员工具,然后单击“脚本”标签元素内的内容,它会被告知是“文本”,而不是“脚本”在下面的栏中)。
但是,如果我删除 PHP,并以相同的方式手动编写整个脚本,它就可以正常工作。我已经尝试删除 PHP 代码中的 \n 换行符,但仍然是同样的问题。
PHP 中的某些东西破坏了脚本。你能帮忙吗?
【问题讨论】:
-
“不能作为脚本工作”是什么意思?
-
我的个人偏好是
var s=<?php echo json_encode($info);?>; -
@jeff 我现在已经在问题中澄清了这一点。如果还不清楚,请告诉我。
-
当您说“查看源文件”时,您的意思是在浏览器中使用“查看源文件”吗?
-
@Bob 是的。这个问题在精神上与我在问题开头发布的早期问题链接非常相似。
标签: javascript php