通过ajax加载codeigniter视图

时间:2015-05-28 13:05:26

标签: javascript php jquery ajax codeigniter

我在codeigniter中创建一个应用程序。我的问题是我想通过像这样的ajax动态加载页面内容:

$.ajax({
    url:'/customer/customerList',
    type: 'POST',
    dataType: 'text',
    success: function(data) {
        $('#container').empty().append(data)
    }
});

这是我的codeigniter模板加载视图功能:

function loadView($page, $data = NULL) {

    $parts = array('header', 'menu-top', 'sidebar-menu', $page, 'footer');

    foreach($parts as $part) {

        if ($part == 'header') {

            $this -> CI -> load -> view($part, $data);
        } else

        if ($part == 'menu-top') {
            $data['menu'] = $this -> loadMenu('menu-top');
            $this -> CI -> load -> view($part, $data);
        } else

        if ($part == 'sidebar-menu') {
            $data['menu'] = $this -> loadMenu('sidebar-menu');
            $data['controller_name'] = $this -> CI -> uri -> segment(1);
            $data['function_name'] = $this -> CI -> uri -> segment(3);
            $this -> CI -> load -> view($part, $data);
        } else

        if ($part == $page) {
            $this -> CI -> load -> view($part, $data);
        } else
        if ($part == 'footer') {
            $this -> CI -> load -> view($part, $data);
        }
    }
}

我将该模板用于静态菜单(无需重新加载)。

但是当我用ajax加载控制器/视图时,它返回所有的html,因为这个模板。有没有解决此解决方案的选项?

如何将模板设置为始终具有静态侧边栏菜单,并仅加载应用程序的中间部分。

感谢重播。

1 个答案:

答案 0 :(得分:0)

您应该发送一个false值作为第三个参数来获取返回数据并打印该数据而不加载HTML文件。像这样::

echo $ this-> CI-> load-> view($ part,$ data,FALSE);