从AMD模块中调用PHP函数

时间:2018-08-09 14:22:05

标签: javascript php moodle amd

对于开发情感,我想加载一个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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您无法直接查询数据库,因为js是客户端脚本,因此您必须develop a web-service。然后,您可以通过

调用它

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 }