2

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

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

我不知道如何将 php 变量分配给脚本变量。帮助表示赞赏。

4

3 回答 3

5

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

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

将成为

var $sTest = something;

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

var $sTest = <?php print json_encode($_GET['ID']);?>;
于 2012-07-26T12:46:10.443 回答
0

在浏览器中查看最终生成的源代码。您在作业周围缺少引号:

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

您还应该htmlspecialchars()对字符串应用以防止 XSS 攻击和破坏字符串:

var $sTest = "<?php echo $a = htmlspecialchars($_GET['ID']);?>";
于 2012-07-26T12:44:02.213 回答
0

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

var $sTest = <?php echo $_GET['ID']?>
于 2012-07-26T12:44:10.220 回答