将php变量传递给js

时间:2013-06-01 14:29:31

标签: php javascript

我正在尝试将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变量中字符串的一部分。无论如何,如果我尝试提醒传递的变量,它会正常显示。

2 个答案:

答案 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的代码,就不可能知道。