在.JS文件中访问PHP变量

时间:2014-10-15 10:03:53

标签: javascript php html5

我试图访问JS文件中的PHP变量。 js文件附加在页面的末尾。

现在我只能想到两种可能的选择,但两者看起来都很简陋,我的问题是,什么是专业人士和职业选手。两种方法的结合(或者有更好的方法吗?)。

选项1:在我的HTML文件中使用内联脚本来设置变量。 e.g。

<body>
    <script type="text/javascript">
        var link = "<?= $var ?>";
    </script>
</body>

选项2:使用HTML data-attributes将变量分配给HTML容器,然后使用jQuery检索它。 e.g。

在HTML文件中:

<body>
    <div id="container" data-ajaxVar="<?= $var ?>">
        Random html
    </div>
</body>

在JS文件中:

var link = $("#container").data("ajaxVar");

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我很确定你应该使用json_encode。它返回php值的JSON表示。像这样:

在你的php中

$n1 = array();
echo json_encode($n1);

在你的javascript中

  var link = $("#container").data(data.n1);

不能做更多,我在手机上,这是一种痛苦。 Some documentation here.

答案 1 :(得分:1)

您的两个选项基本相同。它是最简单的&#34;将静态变量从PHP传递给JS的方法 - 只需将其回显到变量或容器中,您可以从以后提取它。

使用实际JS变量而不是将值嵌入HTML属性的优点是,您可以在变量中放置更复杂的数据类型,如数组和对象。使用data-attribute方法,您几乎可以&#34;卡住&#34;用简单的字符串。这些可以在以后转换,但它只是您必须采取的另一个步骤。

您的另一个选择是在页面加载后使用AJAX调用传输数据。