Php 使用CodeIgniter的Ajax内容区?
我最近开始使用CodeIgniter重新开发一个应用程序,我正在尝试将我的模板实现到系统中 我面临着一个我还看不到解决办法的问题 基本上,在控制器内,我正在做的一个例子是:Php 使用CodeIgniter的Ajax内容区?,php,codeigniter,jquery,Php,Codeigniter,Jquery,我最近开始使用CodeIgniter重新开发一个应用程序,我正在尝试将我的模板实现到系统中 我面临着一个我还看不到解决办法的问题 基本上,在控制器内,我正在做的一个例子是: /* * Load view for header */ $this->load->view('header_view'); /* * Load view for navigation */ $this->load->view(
/*
* Load view for header
*/
$this->load->view('header_view');
/*
* Load view for navigation
*/
$this->load->view('navigation_view');
/*
* Load view for content
*/
$this->load->view('content_view');
/*
* Load view for footer
*/
$this->load->view('footer_view');
然而,我面临的问题是,内容区域中动态加载了页面
因此,导航区链接不会打开HREF URL,但会通过ajax将页面数据加载到content div中
我需要能够通过URL(如“”)直接访问我的控制器,目前还可以
但是,导航会将链接加载到内容区域,其中还包括页眉/导航/页脚,因此我最终会在内容区域中使用嵌套布局
解决这个问题的简单方法是“不要在每个页面中都包含页眉/导航/页脚视图”,但是您不能直接转到上面这样的URL,它只有在加载到内容区域时才能工作,因为它需要页眉、导航和页脚
理想情况下,我需要的解决方案是始终在任何控制器周围加载页眉/导航/页脚,这样,如果我通过URL转到控制器/方法,我不必在控制器中加载页眉/导航/页脚,但它会自动在控制器周围加载
如果您有任何想法,请欣赏,谢谢为什么不使用MY\u控制器扩展CI控制器,那么您的所有控制器都将扩展MY\u控制器。在my_中,控制器具有如下功能:
public function loadView($file, $data=array()){
$this->load->view('header', $data);
$this->load->view($file, $data);
$this->load->view('footer', $data);
}
然后,从控制器的操作中,只需调用它:
public function index(){
// code code code
$this->loadView('welcome', array('message'=>'Hello!'));
}
我想你明白了。在ajax中,你可以使用如下视图:
<div id="header"></div>
<div> //here all your stuffs</div>
</div id="footer"></div>
//这是你所有的东西
那么就:
<script>
$(function(){
$('#footer').load('my_footer_view_url');
$('#header').load('my_header_view_url');
});
</script>
$(函数(){
$('页脚').load('我的页脚\视图\ url');
$('.'标题').load('我的标题\视图\ url');
});
这是一个糟糕的示例,您可以定义一个为视图提供服务的php方法和一个将视图加载到div中的js方法,因此每个视图必须只有一个
用于加载部分
重要
如果您可以使用Ajax,这个解决方案非常好,因为一旦您将#footer div移动到视图中的其他位置,您就会移动一个enteer footer视图(例如,php将更加静态),但我很遗憾,这取决于您是否可以使用Ajax;) 这就导致了同样的问题。例如,我有一个名为control1的控制器,它调用一个名为view1的视图,该视图随后位于我的_控制器加载的页眉/页脚之间。如果我转到mywebsite.co.uk/control1,它将在我的_控制器中加载页眉和页脚,并在control1中加载视图1。但是,假设有一个导航链接动态地将mywebsite.co.uk/control2(它还扩展了MY_控制器)加载到内容区域,则MY_控制器也会将页眉和页脚加载到内容区域。这有意义吗?