为什么Javascript不检索PHP变量的值?

时间:2016-11-21 20:55:56

标签: javascript php

当我运行此代码时,警报无法显示值,而是弹出一个空警报框。

<?php
$x = 20;
$y = "Hello World!";

$list = array();
$list[0] = "January";
$list[1] = "February";
$list[2] = "March";
$list[3] = "April";
$list[4] = "May";
?>


<script type="text/javascript">
alert("JS code executed");
alert(<?php  $x  ;?>);
alert(<?php echo $list[3];?>);
</script>

2 个答案:

答案 0 :(得分:1)

首先,你没有回应$x

其次,你需要引用JavaScript的字符串,所以:

alert("<?php echo $list[3]; ?>");

会起作用。

答案 1 :(得分:0)

您应该使用浏览器的开发工具来查看javascript正在发生的事情。

如果你看一下Console,你会看到类似的东西:

Uncaught ReferenceError: April is not defined

这是因为你忘了在你的剧本上加上行情,你也忘了回复$ x。正确的代码是:

<script type="text/javascript">
alert("JS code executed");
alert("<?php echo $x  ;?>");
alert("<?php echo $list[3];?>");
</script>

@Slaks表示此代码存在XSS漏洞,但这取决于$x$list变量的来源是否安全。