2
<?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 函数。没用。我该怎么办?

4

3 回答 3

6

删除这一行:

header("Content-type: application/javascript");

这告诉浏览器将此页面输出为文本(即浏览器不会呈现它),JavaScript 应该加载到 HTML 文件中。

于 2013-04-09T18:21:42.217 回答
5

当浏览器实际上正在接收 HTML 时,您绝对不应该告诉浏览器它正在接收 JavaScript:

header("Content-type: text/html");

HTML 包含一个<script>标签,而标签本身包含 JavaScript,这一事实完全不同。

此外,在 JavaScript 中注入 PHP 变量的更好方法

var myVar = <?php echo json_encode($variable); ?>;

注意值周围没有引号 -json_encode根据需要自动引用。注入变量有一些优点,这使得这种方法和您的原始方法都不是防弹的,但json_encode作为默认选择要好得多。

于 2013-04-09T18:21:22.617 回答
0

我猜你的文件有 .php 扩展名。在这种情况下,一个简单的<script>var myVar=<?php print $variable; ?></script>就可以了,不需要用引号或双引号括起来:P

于 2013-04-09T18:21:51.180 回答