如何正确编写Joomla MVC组件来执行jQuery AJAX GETS/POSTS?

Al *_*ght 2 jquery joomla

所以,我有这个壮观的Joomla组件,完成后,将带来世界和平,并解决世界饥饿.我所要做的就是合并通过jquery .ajax调用调用的代码.我目前将它们放在外部位置,以便AJAX调用可以访问它们,但不清楚如何正确地将它们放在Joomla组件结构中.

我完成了研究,相信我,但只发现了很多关于"你可以尝试这个或那个"的讨论.据推测,这是因为Joomla依赖于mootools,所以Jquery通常不参与讨论,但我们在内部拥有这个很棒的jQuery例程库,我想利用正确的方法.

在我看来,必须为每个调用创建一个视图,这似乎是完成它的许多不必要的工作/开销.(比如要求飞行员与乘客一起办理登机手续).在我看来,它应该不是那么困难,所以我对我所缺少的东西感到困惑,或者为什么似乎没有一个直接的答案.

更新解决方案 接受Soren的回答,因为它直接回答了问题,虽然我没有指定Joomla 1.5,但我能够快速调整他的工作答案.

值得一提的是Greg P--他的回答开启了一个其他可能性的世界,我没有考虑过快速解决其他项目/挑战.

下面是我能够成功地调用网址我的组件使用AJAX我加入,使其工作有什么我的组件和.

index.php?option=com_mycomponent&format=raw&controller=ajax.raw&task=myfunction
Run Code Online (Sandbox Code Playgroud)

部件\ com_mycomponent \控制器\ ajaxraw.php

<?php
    defined('_JEXEC') or die( 'Restricted access' );
    jimport('joomla.application.component.controller');
    class MycomponentControllerAjaxraw extends JController
    {
        function myfunction()
        {
            echo json_encode("SomethingOrOther");
        }
    }
?>
Run Code Online (Sandbox Code Playgroud)

Sør*_*sen 6

你应该进行Ajax调用

index.php?option=com_yourcomponent&task=ajax.function_name&format=raw
Run Code Online (Sandbox Code Playgroud)

然后,您需要创建一个名为ajax.raw.php的新控制器,并在其中编写名称与URL中的"function_name"匹配的函数,并在调用URL时执行它们.

从那些你可以使用模型$ this-> getModel(); 和需要时的视图等,甚至是懒惰的,并将你的逻辑直接放在控制器中.

如果您没有组件,请尝试使用Joomla Component Creator