我创建了一个模块,而不是一个组件,一个模块,因为它应该出现多次,在不同位置的多个页面上 我关注basic module creation
在default.php中我想对helper进行ajax调用以刷新数据,类似:
$.ajax({ url: '/index.php?option=mod_doodlike&format=raw&tmpl=component,
所有其他参数都在帖子中
有可能吗?什么是确切的URL?
我应该把什么放在helper.php(公共函数,类myclass扩展JController)或mod_module.php中:jimport('joomla.application.component.controller');
或者它确实是我需要创建的组件?
答案 0 :(得分:2)
不,您不能调用模块URL,因为模块不使用它们。
您最好的选择是下载并安装全新的 com_ajax 组件,该组件充当Ajax功能的入口点。它适用于Joomla 1.5,2,5和3.x,因此无论您需要哪个版本,都不要忘记首先选择该分支:
https://github.com/betweenbrain-llc/Joomla-Ajax-Interface
希望这有帮助
答案 1 :(得分:2)
所以在一些ggsearch之后,我成功归功于this post
你必须自称,最好的方法是使用(在default.php中):
'url: "<?php echo JURI::getInstance() ?>",'
然后是mod_yourmodule.php拦截获取或发布&#34;查询&#34;使用JRequest :: getVar因为&#34; $ _ POST [&#39; xxx&#39;]&#34;不起作用
'$task = JRequest::getVar('task'); '
'if($task == ....... '
'and call the helper modyourmoduleHelper::youfuncion'
在帮助器中,由于您不需要所有布局,我在“&lt;”回复“&gt;”标签和使用jexit()
的stoped joomla之间发送了函数返回值的回显回复将是default.php +易于解析的回声:
'var re = /<reply>(.*)<\/reply>/;'
'var result = re.exec(T_output); '
'if(result[1] != ''){ Displayfunction($.parseJSON(result[1]));}'
......完成了