在我的自定义字段/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 Stack Exchange上发布我的joomla问题。