Sdeep_wang 发表于 2013-2-17 15:43:37

CI框架中如何正确引用多个视图?

最近在学习CI框架但是现在遇到一点小麻烦还请各位大侠赐教!
这个是综合的模板
<html>
<head>
    <title>我就是我张国荣</title>
</head>
<body>
    <div style="width:500px;border:1px solid red;height:100px">我是导航栏</div><br />
    <div style="width:500px;border:1px solid blue;height:300px">我是内容</div><br />
    <div style="width:500px;border:1px solid green;height:100px">我是页尾</div>
</body>
</html>

最后我想把这个分成四个模板看看ci究竟是怎么多个模板引用的
<html>
<head>
    <title>看看是怎么用的了</title>
</head>
<body>
   
</body>
</html>
这个是header.php页面
下面的三个都是相同的
<div style="width:500px;border:1px solid blue;height:300px"><?php echo $content; ?></div>
控制器里面的代码如下
<?php
class Blog extends CI_Controller{
    function __construct(){
    parent::__construct();
    }

    function index(){
    $data['content'] = '我就是我张国荣!';
    $this->load->view('header');
    $this->load->view('menu');
    $this->load->view('content',$data);
    $this->load->view('footer');
    }
   
    function comments(){
    echo "Oh mygod you are here!";
    }
}
?>
最后结果却显示是这样的


中间怎么会有换行那?



izengjing 发表于 2017-5-26 08:28:29

本帖最后由 izengjing 于 2017-5-26 08:30 编辑

因为公共模板不会改变,只需要加载一次就可以,所以我把公共模板放在父类函数里面,而且,我也很希望这样处理数据。但是有个问题,公共模板里面的<title></title> 是需要变化的,我通过子模板引入的$data['title']只能在自己的代码段里面使用,公共模板不能使用这个数据,有大神能解决么???
public function __construct(){
      parent::__construct();
      $this->load->view('index/_meta.php');
      $this->load->view('index/_header.php');
      $this->load->view('index/_menu.php');
      $this->load->view('index/_footer.php');
    }
    public function index(){
      $data['title']="我是首页";
      $this->load->view('index/_content.php',$data);
    }

15510787005 发表于 2016-7-11 15:51:36

baiyuxiong 发表于 2015-2-25 17:01
load view这种自己封装一个helper最方便了。

function lv($view,$data)


手册说分配多个视图的时候,给一个加就行,官网是这么写的:
<?php

class Page extends CI_Controller {

   function index()
   {
      $data['page_title'] = 'Your title';
      $this->load->view('header');
      $this->load->view('menu');
      $this->load->view('content', $data);
      $this->load->view('footer');
   }

}
?>

Hex 发表于 2017-5-26 10:19:05

izengjing 发表于 2017-5-26 08:28
因为公共模板不会改变,只需要加载一次就可以,所以我把公共模板放在父类函数里面,而且,我也很希望这样处 ...

你的问题最好的解决方案是 Layout,或者叫做模板继承,但是这需要 Smarty 或其他模板引擎或自己实现。

我是新手 发表于 2013-2-17 15:52:16

css 问题吧

Sdeep_wang 发表于 2013-2-17 15:54:43

css的问题?css是内嵌式的应该不是吧。我试试看看!谢谢

Sdeep_wang 发表于 2013-2-17 15:55:05

我是新手 发表于 2013-2-17 15:52 static/image/common/back.gif
css 问题吧

css的问题?css是内嵌式的应该不是吧。我试试看看!谢谢

qichengzx 发表于 2013-2-17 17:52:44

<br />的问题吧

Hex 发表于 2013-2-17 18:40:03

直接在视图里 $this->load->view('xxx');

Sdeep_wang 发表于 2013-2-18 09:36:30

本帖最后由 Sdeep_wang 于 2013-2-18 09:46 编辑

Hex 发表于 2013-2-17 18:40 static/image/common/back.gif
直接在视图里 $this->load->view('xxx');
我是按照CI中文手册做的,它可以引用多个视图现在的问题是每个视图中间怎么会有换行那?

Sdeep_wang 发表于 2013-2-18 09:37:49

qichengzx 发表于 2013-2-17 17:52 static/image/common/back.gif
的问题吧

多个视图引用的时候我把br去掉了!

Hex 发表于 2013-2-18 09:38:56

Sdeep_wang 发表于 2013-2-18 09:36 static/image/common/back.gif
我是按照CI中文手册做的,它可以引用多个视图现在的问题是每个视图中间怎么会有换行那? ...

把代码打包发上来吧,换行也是你自己输入进去的,CI 不会给你加换行。

Sdeep_wang 发表于 2013-2-18 09:48:24

Hex 发表于 2013-2-18 09:38 static/image/common/back.gif
把代码打包发上来吧,换行也是你自己输入进去的,CI 不会给你加换行。

我把源码添加到了7楼!十分感谢管理员的帮助!
页: [1] 2 3
查看完整版本: CI框架中如何正确引用多个视图?