我正在尝试在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
但这也不起作用。我可能只是想念一件小事。我只需要一个新鲜而聪明的人来指出它。
答案 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)
..
<script src="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文件。