使用模块助手调用Ajax

时间:2012-05-15 12:16:17

标签: joomla joomla1.5 joomla-extensions joomla2.5

是否可以在不使用组件助手的情况下处理Joomla中的ajax调用?

例如;我想创建一个进行ajax调用的模块。我知道如何使用组件助手(index.php?option = com_myhelper ....& format = raw)来处理调用,但是我想从模块中获取组件助手。

有没有办法调用Joomla模块,就像从外部脚本调用Joomla组件一样(http://mydomain.com/index.php?option=com_myhelper....&format=原料)?

1 个答案:

答案 0 :(得分:1)

您是否需要从domainA调用AJAX函数到domainB? 如果是这样,您必须使用代理。

我做了什么,也许可以提供帮助:

组件的JS:

J.ajax({
    type: 'GET',
    url: '/index.php',
    data: {
        option: 'com_mycomponent',
        task: 'getTaskFromTheController',
        param: 'paramValue1'
    },
    success: function(data) {
        J('#suggestions').fadeIn();
        J('#suggestions').html(data);
        J('#suggestions .close-image').click(function() {
            J('#suggestions').fadeOut();                    
        });     
    }

有关jQuery POST/GET

的更多信息

在组件的controller.php中添加函数getTaskFromTheController

public function getTaskFromTheController()
{
    global $mainframe;
    $model =& $this->getModel();
    // If GET 
    // $param= JRequest::getVar('param');

    // If POST 
    // $param = JRequest::getVar('param', '', 'post', 'string');
    //Or
    // $param = JRequest::getVar('param', '', 'post', 'string', JREQUEST_ALLOWHTML);

    echo $model->getUserTaskAjax($param);
    $mainframe->close();
}

有趣的链接: http://forum.joomla.org/viewtopic.php?p=2424982 http://docs.joomla.org/Adding_AJAX_to_your_component How to use jQuery ajax in Joomla module