1

我有以下 jquery ajax

fnc = {
    ajax : function (){
        $.ajax({
        url: 'index.php?route=module/rows/filterView',
        type: 'get',
        success: function(data) {
            alert(data);
        }
    });
    }
}

这是我的活动注册

$(document).on('click','.loadfilter', function() {
    fnc.ajax();
})

这是我的控制器

public function filterView() {
    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/collections.tpl')) {
            $this->template = $this->config->get('config_template') . '/template/module/collections.tpl';
        } else {
            $this->template = 'default/template/module/collections.tpl';
        }

        $this->render();
}

在我的 collections.tpl 我有一个测试内容。

但是当我单击该链接时,它显示为空的警报。它不包含任何值。

为什么我得到空警报。我在这里做错了什么。任何人都可以帮助

4

1 回答 1

1

错误其实很简单:

您只调用它只$this->render();接受模板并呈现它,而根本没有输出。要输出渲染的模板,您需要调用它:

$this->response->setOutput($this->render());

如果您期望输出 JSON,则只需调用

$this->response->setOutput(json_encode($this->render()));

这可以通过打开任何OpenCart 控制器并检查输出和渲染是如何完成的......

于 2013-11-11T12:09:16.213 回答