【问题标题】:load codeigniter view Via ajax通过ajax加载codeigniter视图
【发布时间】:2015-05-28 13:05:25
【问题描述】:

嗨,我正在 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。有没有办法解决这个问题?

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

感谢重播。

【问题讨论】:

  • AngularJS 适合你的需求

标签: javascript php jquery ajax codeigniter


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    相关资源
    最近更新 更多