1

我创建了一个模块,而不是一个组件,一个模块,因为它应该在我关注的不同位置的多个页面上出现多次基本模块创建

在 default.php 中,我想对助手进行 ajax 调用以刷新数据,如下所示:

$.ajax({ url: '/index.php?option=mod_doodlike&format=raw&tmpl=component, 

所有其他参数都在帖子中

可能吗 ?确切的网址是什么?我应该在 helper.php(公共函数,类 myclass 扩展 JController)或 mod_module.php 中放入什么:jimport('joomla.application.component.controller');

或者绝对是我需要创建的组件?

4

2 回答 2

2

No, you can't call a module URL as modules don't use them.

Your best bet would be to download and install the brand new com_ajax component that acts as an entry point for Ajax functionality. It's available for Joomla 1.5, 2,5 and 3.x, so whichever version you need, don't forget to select that branch first:

https://github.com/betweenbrain-llc/Joomla-Ajax-Interface

Hope this helps

于 2013-10-12T10:36:03.570 回答
2

所以经过一些ggsearch,我成功了感谢这篇文章

你必须调用自己,最好的方法是使用(在 default.php 中):

 'url: "<?php echo JURI::getInstance() ?>",'

然后是 mod_yourmodule.php 使用 JRequest::getVar 拦截获取或发布“查询”,因为“$_POST['xxx']”不起作用

 '$task = JRequest::getVar('task'); '
 'if($task == ....... '
 'and call the helper modyourmoduleHelper::youfuncion'

在助手中,由于您不需要所有布局,因此我在“<”reply“>”标签之间发送了函数返回值的回显,并使用 jexit() 停止了 joomla

回复将是 default.php + echo 很容易解析:

 'var re = /<reply>(.*)<\/reply>/;'
 'var result = re.exec(T_output);       '       
 'if(result[1] != ''){ Displayfunction($.parseJSON(result[1]));}'

... 完成的

于 2013-10-14T08:38:12.417 回答