【发布时间】:2022-01-26 16:11:59
【问题描述】:
我在 Moodle (v3.11) 中遇到了这个错误,想知道是否有人知道修复方法。
我有一个正在与我的团队一起构建的块插件。我们四个人都遇到了同样的错误。
安装后,当我点击 Moodle Dashboard 中的“添加块”按钮时,它会抛出此错误:
SyntaxError
Unexpected token m in JSON at position 0
SyntaxError: Unexpected token m in JSON at position 0
at parse (<anonymous>)
at http://localhost/moodle/lib/javascript.php/1643153825/lib/jquery/jquery-3.5.1.min.js:2:79369
at l (http://localhost/moodle/lib/javascript.php/1643153825/lib/jquery/jquery-3.5.1.min.js:2:79486)
at XMLHttpRequest.<anonymous> (http://localhost/moodle/lib/javascript.php/1643153825/lib/jquery/jquery-3.5.1.min.js:2:82254)
我已将导致错误的代码缩小到一个简单的 echo 调用:
注意:我一直在使用 echo 来临时显示我在块中开发的功能的信息。
示例(在位置 0 处抛出意外的“m”)。
echo 'mod id: ' . $moduleid . "<br>";
在探索错误时,“位置 0 处的 JSON 中的意外标记 m”中的 m 始终显示我的代码中第一个 echo 块中的第一个字符,无论我在块中有哪些或多少个 echo 调用。
由于这是我的第一份编码工作,而且我现在只使用 Moodle 和 PHP 大约 3 周,我担心我的 echo 调用可能做错了什么?同时使用“单”和“双”引号时会引发错误。
为什么在 Moodle 3.11 中单击“添加块”时向块插件添加回显会导致语法错误?
【问题讨论】:
-
echo 'mod id: ' . $moduleid . "<br>";不会输出 JSON。看php.net/manual/en/function.json-encode.php -
我所有的回声呼叫都在做他们应该做的事情,并打印到窗口。作为一名新程序员,我认为它不应该使用 JSON。也许它在错误消息中显示的一件事是调用 JSON?它甚至在我回显“
”的行上抛出错误;在页面顶部!
标签: php moodle moodle-api moodle-theme moodle-boost