【问题标题】:Joomla how to make an ajax call to an helper.php moduleJoomla 如何对 helper.php 模块进行 ajax 调用
【发布时间】:2013-10-20 09:41:51
【问题描述】:

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

在 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');

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

【问题讨论】:

    标签: ajax joomla call helper


    【解决方案1】:

    不,您不能调用模块 URL,因为模块不使用它们。

    最好的办法是下载并安装作为 Ajax 功能入口点的全新 com_ajax 组件。它适用于 Joomla 1.5、2,5 和 3.x,因此无论您需要哪个版本,都不要忘记先选择该分支:

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

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      所以在一些 ggsearch 之后,感谢this post,我成功了

      你必须调用自己,最好的方法是使用(在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'
      

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

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

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

      ...完成

      【讨论】:

        猜你喜欢
        • 2012-02-01
        • 2011-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-26
        • 2013-04-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多