在Javascript代码中获取PHP变量

时间:2013-11-12 20:37:22

标签: javascript php apache .htaccess

我正在尝试在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

但这也不起作用。我可能只是想念一件小事。我只需要一个新鲜而聪明的人来指出它。

6 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分: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:哟不需要任何标题。

答案 3 :(得分: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。

答案 4 :(得分:0)

的index.html

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

myfunctions.js.php

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

答案 5 :(得分: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文件。