将php变量传递到单独的javascript文件

passing php variable to separate javascript file

本文关键字:单独 javascript 文件 php 变量      更新时间:2023-09-26

我一直在阅读如何将变量从php网页传递到单独的javascript文件,但运气不佳。

请不要把这个标记为重复,因为我知道有很多东西告诉我们如何做到这一点。我认出了这些帖子,更多的是检查我的语法,或者看看我的特定情况是否有什么独特之处导致这些方法不起作用。

所以我有一个PHP网页,在那里我发布了一些变量到:

DOCTYPE HTML
...
 <?php
            $id = $_POST["id"];
            $name = $_POST["name"];
    ?>
...
HTML code with some usage of PHP variables
javascriptFunction()
end page

然后在一个单独的javascript文件中,我有:

var markerlocation = '<?php echo $point; ?>'; 
function javascriptFunction () {
alert("markerlocation");
});

这看起来很直接,但无论出于什么原因,我都无法获得它。我也尝试过json编码。

完成后我可以删除此。衷心感谢您的帮助。

我的方式:

  1. 声明一个数组来存储用于将变量传递给JavaScript的变量
  2. 在php中将数组编码为JSON
  3. 从php解码JSON字符串并将其存储为JavaScript变量

PHP

<?php
    //You may declare array for javascript
    $jsVal = array(
        'user_name' => 'Peter',
        'email' => 'peter@gmail.com',
        'marker_location' => '102,300'
    );
?>  
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>var phpConfig = jQuery.parseJSON(<?=json_encode($jsVal)?>);</script>

分离的javascript文件

alert(phpConfig.marker_location);

你可以试试

您可以将脚本标记源指向.php文件,而不是.js文件,我认为这就是您想要的。也适用于图像标记;)

编辑:有些浏览器可能需要text/javascript mime头才能正常工作,但PHP并不难,我想你已经知道如何做到这一点了。

附带说明:只有当您计划允许客户端缓存javascript输出时,才可能使用此选项。如果您不希望客户端缓存它,则需要设置其他标头。