在 JavaScript 代码中获取 PHP 变量

Getting PHP variable in Javascript code

本文关键字:PHP 变量 获取 JavaScript 代码      更新时间:2023-09-26

我试图在Javascript中使用PHP变量,但我不能。在编写了 2000 多行不同的 JS 函数后,我可以避免这种情况,但现在我真的需要它。我对解决这个问题的所有方法都有点迷茫,但没有任何效果。这是我的顺序:

索引.html文件:

...
<script src="myfunctions.js" />
....

我的函数.js文件:

....
function test() {
    var x = <?php echo $_conf['user_id'];?>
    console.log(x);
}

我试图将.js文件重命名为.php文件并添加

header("Content-type: text/javascript");

一开始 - 这不起作用。我试图制作.htaccess文件

AddType application/x-httpd-php .js

但这也没有用。我可能只错过了一件小事。我只需要一个新鲜和明亮的人来指出它。

你可以在 JS 代码中做这样的事情。

var php_var = "<?php echo $_conf['user_id'];?>"

你的javascript文件应该命名为"javascript.php"(只要输入你想要的名字,唯一重要的是.php

您有一个索引.php

写入索引.php

include("javascript.php");

然后在你的JavaScript中.php

<script>
function test(){
     var variable = "<? echo $conf['user_id'] ?>";
     alert(variable);
}
<script>

PS:哟不需要任何标题。

由于您是通过 <script> 标签执行此操作的,因此您的 PHP 脚本必须输出有效的 Javascript 代码,就好像您手动输入变量赋值一样。这意味着要做这样的事情:

HTML/JS:

<script src="myscript.php"></script>

.PHP:

<?php
$myvar = 'foo';
?>
var myvar = <?php echo json_encode($myvar); ?>;

最后,这将产生一些功能,就像您手动输入以下内容一样:

<script>
var myvar = 'foo';
</script>

请注意 json_encode() 的用法。使用它可以确保从PHP输出的任何内容都将成为语法上有效的Javascript。

你没有将PHP值分配给Javascript变量。尝试:

var v = "<?php echo $_conf['user_id'];?>";

索引.html

 ..
<script src="myfunctions.js.php" />
 ...

我的函数.js.php

<?php
header('Content-Type: text/javascript');
 ...
?>
var val = <?php echo json_encode($val); ?>;
 ...

其他可能的解决方案是将服务器端数据分配给 html 中的属性,并在 javascript 中读取它们。例如 index.html 可以包含如下内容:

<div id="user-profile" data-user-id="<?php echo $conf['user_id']; ?>"></div>

在js文件中,你可以在必要时获取它们(使用jQuery的例子):

var userID = $('#user-profile').attr('data-user-id');

当然,您应该调整服务器端设置以处理 html 文件。