0

我正在尝试将PHP变量传递给JS文档并将其显示为String. 我的代码如下所示:

php文档:

<?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文档:

var DEFAULT_URL = '../../html/docs/' + id;

但是,传递的 id 变量不会显示为DEFAULT_URL变量中字符串的一部分。无论如何,如果我尝试提醒传递的变量,它会正常显示。

4

2 回答 2

1

尝试:

var DEFAULT_URL = '../../html/docs/' + window.id;

编辑:那么这应该可以工作(您应该用一个非常适合您的名称替换 My )。

<?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;
于 2013-06-01T14:38:11.063 回答
1

这个问题的答案不是 json_encode。事实上,json_encode会确保变量可以安全地传递给 JS,这是有益的。

考虑这个 PHPfiddle,这正是 OP 的代码。alert顺利通过。

在这种情况下,我所赌的是类似于以下的结构:

var id = "57.pdf";
(function() {
  ...
  var id;
  alert(id);
})();

其中id已在 IETF 中重新声明为本地,因此外部id不再可访问。从那里,alert将是空的。但是,如果不查看所有 OP 的代码,就不可能知道。

于 2013-06-01T14:40:03.773 回答