将php变量转换为javascript.Not working
问题描述:
<?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函数。没有使用。我该怎么做?将php变量转换为javascript.Not working
答
你绝对不应该告诉它接收的JavaScript时,它其实是在接收HTML浏览器:
header("Content-type: text/html");
的HTML包含<script>
标签,它本身包含JavaScript是完全不同的东西的事实。
此外,对在JavaScript注入PHP变量多更好的办法是
var myVar = <?php echo json_encode($variable); ?>;
注意周围的值暂无报价 - json_encode
自动报价要求。关于注入变量的一些细节问题使得这个和你的原始方法都不是无懈可击的,但json_encode
作为默认选择要好得多。
答
删除此行:
header("Content-type: application/javascript");
这告诉浏览器输出此页面为文本(即浏览器将不渲染它),JavaScript的应加载到HTML文件。
+0
或者至少将它改为'text/html'。 – 2013-04-09 18:22:57
答
我猜你的文件有.php扩展名。在这种情况下,一个简单的<script>var myVar=<?php print $variable; ?></script>
就可以做到了,不需要用引号或双引号括起来:P
在HTML5中,type属性不是必须的。 js被假设为 – 2013-04-09 18:23:40
对于简单的数字,json_encode不是必需的... – Bart 2013-04-09 18:25:18
@MarcosSavoury:感谢提示,编辑了这部分内容。 – Jon 2013-04-09 18:25:23