我正在尝试将PHP
变量传递给JS
文档,并将其显示为String
的一部分。
我的代码如下:
php doc:
<?php
$id = "57.pdf";
?>
<script type="text/javascript">
var id = <?php echo json_encode($id); ?>;
</script>
<script type="text/javascript" src="../pdfjs/web/viewer.js"></script>
js doc:
var DEFAULT_URL = '../../html/docs/' + id;
但是,传递的id变量不会显示为DEFAULT_URL
变量中字符串的一部分。无论如何,如果我尝试提醒传递的变量,它会正常显示。
答案 0 :(得分:1)
尝试:
var DEFAULT_URL = '../../html/docs/' + window.id;
编辑:那么这应该有效(你应该用一个非常具体的名字替换我)。
<?php
$id = "57.pdf";
?>
<script type="text/javascript">
var My = {
app: {
id: <?php echo json_encode($id); ?>
}
};
</script>
<script type="text/javascript" src="../pdfjs/web/viewer.js"></script>
和
var DEFAULT_URL = '../../html/docs/' + My.app.id;
答案 1 :(得分:1)
这个问题的答案是不 json_encode
。事实上,json_encode
将确保变量可以安全地传递给JS,这是有益的。
考虑this PHPfiddle,这正是OP的代码。 alert
没问题。
在这种情况下,我所押注的是与此类似的结构:
var id = "57.pdf";
(function() {
...
var id;
alert(id);
})();
其中id
已在IETF中重新声明为本地,并且因此无法再访问外部id
。从那里,alert
将为空。但是,如果没有看到所有OP的代码,就不可能知道。