如何从单独的javascript文件中引用PHP变量

How do I reference a PHP variable from a separate javascript file?

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

假设我有someJavascript.js文件和somePHP.php文件。在我的php文件中,我有一些$foo。如果var something = $foo在其他文件中,如何设置它?

我尝试过的东西:

  1. var something = '<?php echo $foo ?>';-这正好给了我一串这个短语
  2. var something = '<?php echo json_encode($foo); ?>';同样的东西,只是一个字符串

如有任何帮助,我们将不胜感激!谢谢

您的问题是您的Web服务器没有像处理.php文件那样处理.js文件。所有.js文件都按原样发送到浏览器。

一个简单的选择是在somePHP.php上包含一个隐藏元素,然后在someJavascript.js:中引用它

在somePHP.php中:

<html>
    <body>
        <input type="hidden" id="foo" value="<?php echo $foo; ?>">
    </body>
</html>

在一些Javascript.js中:

var foo = document.getElementById('foo').value();

正确的方法是使用eval:var something=eval(''(请记住,json应该小心使用,有很多json库可以以更安全的方式将json数据解析为JavaScript对象!

包含整个文件有点庞大,但它完成了任务,是吗您的文件必须是.php文件才能使用php变量(或者您的服务器必须配置为使用php引擎处理.js文件(

<?php include('somePHPfile.php') ?>

<script type="text/javascript" language="javascript">
var foo = "<?php echo $foo; ?>";
</script>

我认为你有三个选项:

  1. 杰森的回答
  2. 设置web服务器以解析.js文件,如php文件。在Apache中,您可以将AddType application/x-httpd-php .js添加到apache2.conf或httpd.conf文件中。IIS中也有类似的想法。只有当您可以访问配置文件时,这个想法才有效,所以在共享服务器上不起作用
  3. 将javascript放入php解析器处理的某个文件中。在扩展名为.php的文件中,您总是可以编写一个var a = '<?php echo $someVar; ?>';。然后在原始文件中写入<script src='/path/to/your/phpScript.php'></script>。本质上是哈维林的回答