1

我正在尝试在 Javascript 中使用 PHP 变量,但我不能。在编写了超过 2000 行不同的 JS 函数之后,我很好地避免了这种情况,但现在我真的需要它。我对解决这个问题的所有方法都有点迷失,但没有什么真正奏效。这是我的顺序:

index.html文件:

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

myfunctions.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

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

4

6 回答 6

2

您可以在 JS 代码中执行类似的操作。

var php_var = "<?php echo $_conf['user_id'];?>"
于 2013-11-12T20:39:15.180 回答
1

由于您是通过<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。

于 2013-11-12T20:41:56.957 回答
1

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

var v = "<?php echo $_conf['user_id'];?>";
于 2013-11-12T20:39:20.397 回答
1

您的 javascript 文件应命名为“javascript.php”(只需输入您想要的名称,唯一重要的是 .php

你有一个 index.php

写在你的 index.php

include("javascript.php");

然后在你的 javascript.php

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

PS:哟不需要任何标题。

于 2013-11-12T20:40:25.283 回答
0

其他可能的解决方案是将服务器端数据分配给 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 文件。

于 2013-12-15T17:46:42.740 回答
0

索引.html

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

myfunctions.js.php

<?php
header('Content-Type: text/javascript');
 ...
?>
var val = <?php echo json_encode($val); ?>;
 ...
于 2013-11-12T20:40:26.273 回答