从AMD模块moodle调用PHP函数



对于 moodle 开发,我想加载一个 AMD 模块:

$this->page->requires->js_call_amd('mod_newmodule/testamd', 'init', array($content));

testamd.js看起来像这样:

define(['jquery'], function ($) {
return {
    init : function(content) {
        $(".myclass").click(function () {
                alert("test");
            });
        }
};    
});

而不是alert(),我想在按钮单击时进行数据库查询。如何从我的 AMD 模块调用 php 函数(执行查询(?还是应该写在AMD内部?但话又说回来呢?有没有类似最佳实践的东西?

此外,我没有到达init返回的地方。

$var = $this->page->require->...

什么都没回来$var

感谢您的帮助。

你不能直接查询数据库,因为js是一个客户端脚本,你必须开发一个Web服务。然后你可以通过以下方式调用它

var promises = Ajax.call([{ methodname: 'YOUR_WEBSERVICE_METHOD_NAME', args: { exampleid: MYID, examplestring: MYSTRING } }]); //resolve promise promises[0].then(function(data) { //data contains webservice answer }

最新更新