嗨,我正在用codeigniter创建一个应用程序。我的问题是,我想通过ajax动态加载页面内容,像这样:
$.ajax({
url:'/customer/customerList',
type: 'POST',
dataType: 'text',
success: function(data) {
$('#container').empty().append(data)
}
});
以下是我的codeigniter模板loadview函数:
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,因为这个模板。是否有解决此解决方案的选项?
如何更改模板,使其始终具有静态侧边栏菜单,并且只加载应用程序的中间部分。
您应该发送一个false值作为第三个参数,以获得返回数据并在不加载HTML文件的情况下打印该数据。像这样::
echo $ this -> CI ->加载>视图(部分数据,美元假);