未捕获的引用错误:..未定义..但我可以在错误字符串中看到该变量

时间:2012-07-26 12:41:32

标签: php javascript variables

这行代码var $sTest = <?php echo $a = $_GET['ID']?>返回“未捕获的引用错误:..未定义。”

对于这个问题,如果我们假设我传递的是“ABC”的ID。当我在Chrome中使用开发人员工具并检查资源时,我可以看到$ _GET 已经有效,因为它显示了变量值。在这种情况下的错误消息是“未捕获的引用错误:ABC未定义。”

我无法弄清楚如何将php变量分配给脚本var。帮助赞赏。

3 个答案:

答案 0 :(得分:4)

这是因为你必须引用你的php脚本的输出:

var $sTest = <?php echo $a = $_GET['ID']?>

将成为

var $sTest = something;

在您的Javascript环境中,something未定义。如果你想保留尽可能多的类型信息,你应该在php端使用json_encode,如下所示:

var $sTest = <?php print json_encode($_GET['ID']);?>;

答案 1 :(得分:0)

查看浏览器中最终生成的源代码。你错过了作业的引号:

var $sTest = "<?php echo $a = $_GET['ID']?>";

您还应该将htmlspecialchars()应用于字符串以防止XSS攻击并打破字符串:

var $sTest = "<?php echo $a = htmlspecialchars($_GET['ID']);?>";

答案 2 :(得分:0)

尝试回显$ _GET而不将其分配给$ a。

var $sTest = <?php echo $_GET['ID']?>