<?php
header("Content-type: application/javascript");
?>
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<?php
$variable=10;
?>
<script>
var myVar = "<?php echo $variable; ?>";
alert(myVar);
</script>
</body>
</html>
这是我的源代码,但它无效。我担心的是将php变量转换为javascript变量。警报将整行显示为字符串 而不是打印值...已经尝试过json函数。没有使用。我该怎么办?
答案 0 :(得分:6)
删除此行:
header("Content-type: application/javascript");
这告诉浏览器将此页面作为文本输出(即浏览器不会呈现它),应将JavaScript加载到HTML文件中。
答案 1 :(得分:5)
当它实际上正在接收HTML时,你绝对不应该告诉浏览器它正在接收JavaScript:
header("Content-type: text/html");
HTML包含<script>
标记,其本身包含JavaScript的事实完全不同。
此外,在JavaScript中注入PHP变量的更多更好的方法是
var myVar = <?php echo json_encode($variable); ?>;
请注意,值{ - {1}}周围没有引号根据需要自动引用。关于注入变量的一些细节使得这个变量和原始方法都不是防弹的,但json_encode
作为默认选择会更好。
答案 2 :(得分:0)
我猜您的文件扩展名为.php。在这种情况下,一个简单的<script>var myVar=<?php print $variable; ?></script>
会做,不需要用引号或双引号括起来:P