首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将php变量传递给js

将php变量传递给js
EN

Stack Overflow用户
提问于 2013-06-01 22:29:31
回答 2查看 188关注 0票数 0

我尝试将PHP变量传递给JS文档,并将其显示为String的一部分。我的代码看起来像这样:

php文档:

代码语言:javascript
运行
复制
<?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文档:

代码语言:javascript
运行
复制
var DEFAULT_URL = '../../html/docs/' + id;

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

EN

回答 2

Stack Overflow用户

发布于 2013-06-01 22:38:11

尝试使用:

代码语言:javascript
运行
复制
var DEFAULT_URL = '../../html/docs/' + window.id;

编辑:然后这应该可以工作(您应该用一个非常特定于您的名称来替换My )。

代码语言:javascript
运行
复制
<?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>

和:

代码语言:javascript
运行
复制
var DEFAULT_URL = '../../html/docs/' + My.app.id;
票数 1
EN

Stack Overflow用户

发布于 2013-06-01 22:40:04

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

考虑一下,它就是OP的代码。

在这种情况下,我打赌的是一个类似于以下内容的结构:

代码语言:javascript
运行
复制
var id = "57.pdf";
(function() {
  ...
  var id;
  alert(id);
})();

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16873719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档