我有这个代码,当我用mydomain / index.php / blog调用函数时,一切正常,但在这种情况下的内容即“索引”显示在页面顶部。 我希望它显示在我在css中定义的内容区域中。问题是什么?
<?php
class Blog extends CI_Controller{
public function __construct(){
parent::__construct();
}
public function index(){
$this->load->view('template/header');
echo "index";
$this->load->view('template/footer');
}
}
?>
答案 0 :(得分:2)
有两种方法可以在CodeIgniter中向浏览器显示输出。使用CI视图,只是回显数据。 echo
命令立即执行,这就是它位于页面顶部的原因。 load->view
方法在输出库的CI中执行 - 因此它不会按照echo语句的顺序执行。
我想为您的内容创建另一个视图,然后调用所有这些视图:
$data = array('content_html' => 'index');
$this->load->view('template/header');
$this->load->view('template/content', $data);
$this->load->view('template/footer');
您的内容视图可以回显content_html
变量:
// views/template/content.php
echo $content_html;
或者,您可以控制控制器中的内容(尽管不是最好的想法):
$header = $this->load->view('template/header', array(), TRUE);
$footer = $this->load->view('template/footer', array(), TRUE);
echo $header;
echo "index";
echo $footer;
将TRUE
作为第三个参数传递给load->view
方法将视图作为字符串返回,而不是将其输出到浏览器 - 允许您控制输出。
答案 1 :(得分:1)
如果您想在内容区域中显示数据
<?php
class Blog extends CI_Controller{
public function __construct(){
parent::__construct();
}
public function index(){
$data['content'] ='Your content';
$this->load->view('template/header');
$this->load->view('template/content_template',$data);
$this->load->view('template/footer');
}
}
?>
为内容创建单独的模板文件,并将此代码粘贴到内容文件中。
<?php
print $content;
?>
另请参阅此网址 http://ellislab.com/codeigniter/user-guide/general/views.html