【问题标题】:Loading multiple views using codeigniter php使用 codeigniter php 加载多个视图
【发布时间】:2016-01-15 04:07:14
【问题描述】:

我有 4 个页面,例如

layout/header.php,
layout/header_assets.php,
user/main.php,
layout/footer.php

我想加载这些多视图,所以我在控制器中使用了这段代码

$this->load->view('layout/header_assets');
    $this->load->view('user/main',$data);
    $this->load->view('layout/footer');

但我有一个问题:

<link rel="apple-touch-icon" href="http://localhost/game/assets/images/apple-touch-icon.png">
<html lang="en">

<head>
</head>

<body>
test
</body>
</html>
<footer>

</footer>

我希望以正确的方式编写 html 代码,header_assets 在 head 标签中加载,footer 在 body 标签中加载。

但是现在如果我加载第一个 header_assets 而不是加载 main.php。 所以 header_assets 在 main.php 之后首先加载

我要这样

<html lang="en">

<head>
<link rel="apple-touch-icon" href="http://localhost/game/assets/images/apple-touch-icon.png">
</head>

<body>
test

<footer>

</footer>
</body>
</html>

【问题讨论】:

  • 在加载视图之前使用$this-&gt;load-&gt;vars($data);Docs.

标签: php codeigniter


【解决方案1】:

您可以在view下创建一个文件夹includes并创建一个页面template并在页面template中添加以下代码-

<?php $this->load->view('includes/header');
    $this->load->view($middle);
    $this->load->view('includes/footer');   
?>

在您的控制器中,您只需调用模板并传递您的数据,如下所示-

$this->data['middle'] = 'public/existing_mem'; // view page to be included
 $this->load->view('includes/template',$this->data);

【讨论】:

    【解决方案2】:

    关于你的问题

    在控制器中

    $this->load->view('layout/header_assets',$data); # Change
    $this->load->view('user/main',$data);
    $this->load->view('layout/footer');
    

    最好的选择是

    一个文件应该包含 3 个部分。

    1. 标题
    2. 身体
    3. 页脚。

    在标题中

    只有包含

    1. 元标记
    2. 所有 CSS 和 JS

      <html lang="en">    
      <head>
          <meta>....
          <link href="">....
          <script>....
      </head>
      

    在正文中

    这应该包含页面显示部分和所有代码。这包含

    1. &lt;body&gt; 标签开始 ....
    2. 其余所有代码

    在页脚中

    这应该包含

    1. 版权所有
    2. 移到顶部(需要 id)
    3. &lt;/body&gt; 标记以 &lt;/html&gt; 关闭

    所以你可以通过

    在codeigniter中加载这三个View
    $this->load->view('layout/header');
    $this->load->view('user/main',$data);
    $this->load->view('layout/footer')
    

    【讨论】:

      猜你喜欢
      • 2013-03-18
      • 2012-09-14
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 2014-10-18
      • 2017-09-25
      • 2015-07-16
      • 2013-08-30
      相关资源
      最近更新 更多