如何创建Ajax调用以过滤Joomla Admin组件的数据

问题描述 投票:0回答:1

在我的自定义字段/edit.php中,我列出了员工,并添加了一些过滤器字段:-对于姓氏,- 姓-和类别。当我开始在过滤器字段之一中键入内容时,将执行Ajax调用。

第1步:使用jQuery.ajax代码的自定义字段:

var token = jQuery("#token").attr("name");
var getUrl = "index.php?option=com_component&task=employeesearch&format=json";
jQuery.ajax({
    type: "POST",
    url: getUrl,
    data: {[token]: "1", task: "employeesearch", format: "json", arfilter: arfilter},
    success: function(result, status, xhr) { displaySearchResults(result); },
    error: function() { console.log(\'ajax call failed\'); },
});

(数组arFilter确实具有过滤器字段的值。)

步骤2:主控制器:我在主控制器中有employeesearch添加的功能。该主控制器中也存在“默认”功能显示。任务是“ employeesearch”。

public function employeesearch()  {
    echo '<script>alert("DEBUG: main controller.php employeesearch function")</script>';
    if (!JSession::checkToken('get')) {
        echo new JResponseJson(null, JText::_('JINVALID_TOKEN'), true);
    } else  {
        parent::display();
    }
}

执行Ajax调用后,在主控制器中未预期有一个功能(“默认”显示,employeesearch)。

第3步:Admin / com_comoponent / views / employee / view.json.php

我这里没有代码,首先我想知道这是执行的。我认为,如果以正确的方式阅读了文档,则应执行该操作,因为格式为json。
class ComponentViewEmployee extends JViewLegacy {
    function display($tpl = null) {
        //$input = JFactory::getApplication()->input;

        echo "view.json.php - display function";
    }

Step4:Admin / com_comoponent / models / employee.php

现在我已经在这里添加了getEmployeeSearchResults函数

public function getEmployeeSearchResults($arEmployee) {
    try {
         echo "model getemployeesearchResults($arEmployee) {
         result = "Query executed";
    }
        catch (Exception $e) {
            $msg = $e->getMessage();
            JFactory::getApplication()->enqueueMessage($msg, 'error'); 
            //$results = null;
            $result = null;
    }
    return $result;
}

在控制台日志中,每次“ Ajax调用失败”时,我都会得到此消息,这是Ajax调用的错误消息。

我尝试使用“浏览器开发人员工具”对其进行分析,在那里看到“ http://jcbworkshop2/administrator/index.php?option=com_component&task=employeesearch&format=json”。在XHR中,消息404。

我正在关注joomla build MVC component。这是一个前端教程,但我认为它大致相同,但也许不一样?

我在谷歌搜索中找到的示例全部基于前端视图。

此刻,我不知道如何执行以下步骤?我如何找出哪里出了问题?

我希望有人可以进一步帮助我并为我指明方向,以便我可以走得更远。或者,如果我朝着完全错误的方向发展,那么很复杂,希望您让我知道,因为我当然可以添加一个名为employeesearch.php的文件,该文件可以直接从ajax调用中调用,并返回经过过滤的查询价值的。那也可以,但是比我现在不使用Joomla框架结构...

提前感谢

Nico

在我的自定义字段/edit.php中,我列出了员工,并添加了一些过滤器字段:-表示姓氏-姓氏和类别。当我开始在过滤器字段之一中键入内容时,Ajax调用是...

joomla components
1个回答
0
投票

下次我将在Joomla Stack Exchange上发布我的joomla问题。

© www.soinside.com 2019 - 2024. All rights reserved.