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

时间:2014-10-23 05:30:48

标签: javascript php

我一直在阅读如何将变量从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编码。

完成后我可以删除它。 真诚的感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

我的方式:

  1. 声明一个Array来存储用于将变量传递给JavaScript的变量
  2. 将数组编码为php中的JSON
  3. 从php解码JSON字符串并存储为JavaScript变量
  4. <强> 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);
    

    你可以尝试一下

答案 1 :(得分:0)

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

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

旁注:如果您计划允许客户端缓存javascript输出,则可能只应使用此选项。如果您不希望客户端缓存它,则需要设置其他标头。