对于 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
}