Joomla如何对helper.php模块进行ajax调用

时间:2013-10-12 09:55:49

标签: ajax joomla call helper

我创建了一个模块,而不是一个组件,一个模块,因为它应该出现多次,在不同位置的多个页面上 我关注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');

或者它确实是我需要创建的组件?

2 个答案:

答案 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]));}'

......完成了