使用ajax Joomla从视图中调用子控制器

时间:2013-04-27 09:10:16

标签: jquery joomla url-routing

我想向我的一个子控制器方法发送ajax请求,但我尝试过的所有内容似乎都不起作用。请求看起来像

 ajax: {
                url: "index.php?option=com_mycomponent&controller=search&task=locator&tmpl=component&<?php echo JUtility::getToken() ?>=1",
                dataType: 'json',
                data: function(term, page) {
                    return {
                        q: term, // search term
                    };
                },
                results: function(data, page) {
                    return {results: data};
                }

控制器

class MyControllerControllerMyController extends JControllerLegacy
{


    function __construct($config = array()) {
        parent::__construct($config);
        echo 'test';
    }
}

1 个答案:

答案 0 :(得分:0)

我会称这个网址为:index.php?option=com_mycomponent&task=search.locator&format=json&<?php echo JUtility::getToken() ?>=1 注意,任务有两部分,第一部分在点之前是控制器,第二部分是函数。另请注意format参数,这个参数告诉Joomla在search.json.php目录中查找名为controllers的文件。

控制器类必须命名为MycomponentControllerSearch

此外,响应需要进行json编码。你可以这样做:     $ response = array(         &#39;状态&#39; =&GT; &#39; 0&#39 ;,         &#39;错误&#39; =&GT; JText :: _(&#39; JINVALID_TOKEN&#39;),     );     echo json_encode($ response);

发送响应后,使用JExit()终止脚本。