所以,我得到了这个令人惊叹的 Joomla 组件,完成后,它将带来世界和平,并解决世界饥饿问题。我所要做的就是合并通过 jquery .ajax 调用调用的代码。我目前将它们放在外部位置,以便 AJAX 调用可以到达它们,但不清楚如何将它们正确放置在 Joomla 组件结构中。
相信我,我已经做了研究,但只发现了很多关于“你可以尝试这个或那个”的讨论。大概是因为 Joomla 依赖 mootools,所以 Jquery 通常不在讨论范围内,但我们内部有这个很棒的 jQuery 例程库,我想以正确的方式利用它。
在我看来,必须为每个调用创建一个 View ,这似乎需要大量不必要的工作/开销来完成它。 (就像要求飞行员与乘客一起办理登机手续)。在我看来,这不应该这么困难,所以我对我错过的东西感到困惑,或者为什么似乎没有一个直接的答案。
更新解决方案 接受 Soren 的答案,因为它直接回答了问题,尽管我没有指定 Joomla 1.5,但我能够快速调整他的答案以适应工作。
值得一提的是 Greg P,他的回答开启了一个充满其他可能性的世界,而我没有考虑过这些可能性来快速解决我遇到的其他项目/挑战。
这是我能够使用 AJAX 成功从我的组件调用我的组件的 URL,以及我添加的内容以使其正常工作。
index.php?option=com_mycomponent&format=raw&controller=ajax.raw&task=myfunction
组件\com_mycomponent\controllers\ajaxraw.php
<?php
defined('_JEXEC') or die( 'Restricted access' );
jimport('joomla.application.component.controller');
class MycomponentControllerAjaxraw extends JController
{
function myfunction()
{
echo json_encode("SomethingOrOther");
}
}
?>
最佳答案
您应该进行 Ajax 调用
index.php?option=com_yourcomponent&task=ajax.function_name&format=raw
然后,您需要创建一个名为 ajax.raw.php 的新 Controller ,并在其中编写名称与 URL 中的“function_name”匹配的函数,并且它们将在调用 URL 时执行。
在这些模型中,您可以使用模型 $this->getModel();和 View 等需要时,或者甚至偷懒,直接将逻辑放在 Controller 中。
如果您没有组件,请输入 Joomla Component Creator尝试一下
关于jquery - 如何正确编码 Joomla MVC 组件以执行 jQuery AJAX GETS/POSTS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10820052/