我试图访问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");
有什么建议吗?
答案 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调用传输数据。