如何通过控制器从页面到页面发送变量

时间:2017-04-26 12:11:08

标签: php codeigniter

这是我第二次使用CodeIgniter,有一件事没有成功。从我的主页发送变量到我的标题。这是我的控制者:

public function index()
{
    $data['data'] = $this->BookModel->get_author();
    $this->load->view('templates/header', $data);
    $this->load->view('home/index');
    $this->load->view('templates/footer', $data);
}

如您所见,它正在加载我的header,我的index和我的footer

这是我的索引文件:

<?php
$title = "Books"; ?>    
<div class="content">
<table>
...

这是我的标题:

<html>
<head>
    <meta charset="utf-8">
    <title>Author plaza</title>
    <link rel="stylesheet" type="text/css" href="<?php echo base_url('assets/css/style.css') ?>">
</head>
<body>

    <div class="website">
        <div class="header">
            <h1 class="kopje"><?php echo $title; ?> </h1>
            <img class="boekje" src="<?php echo base_url('assets/img/book.gif')?>"> 
        </div>

变量$title需要使用echo中的header作为H1进行打印。据我所知,这是正确的方法。但它不会起作用。

有人可以帮助我吗?

6 个答案:

答案 0 :(得分:0)

该变量正在Header中使用,而它仅在index中声明。您正在尝试在分配变量之前使用该变量。

理想情况下,此数据应位于BookModel中,然后从那里引用。

或者,在Header中设置变量,然后在index中使用它。

答案 1 :(得分:0)

为什么你没有从控制器传递它?

$data['data'] = $this->BookModel->get_author();
$data['title'] ="Books";
    $this->load->view('templates/header', $data);
    $this->load->view('home/index',$data);
    $this->load->view('templates/footer', $data);

在任何视图中:

echo  $title;

答案 2 :(得分:0)

在控制器的索引功能中将$data['data']更改为$data['titel']

答案 3 :(得分:0)

您可以通过发送单独的 $ titel 变量来使用 $ data [&#39; titel&#39;] =&#34; titel&#34 ;;

<h1 class="kopje"><?php echo $titel; ?> </h1>

或 titel是数据变量,你可以像这样使用

<h1 class="kopje"><?php echo $data['titel']; ?> </h1>

答案 4 :(得分:0)

问题是你在标题下面定义了标题所以它在标题中不可用你需要做什么我在控制器中定义它并将它传递给视图$data['title']="Your Title"

public function index()
{
    $data['data'] = $this->BookModel->get_author();
    $data['title]="your Header";
    $this->load->view('templates/header', $data);
    $this->load->view('home/index',$data);
    $this->load->view('templates/footer', $data);
}

in your view files you can access the key "title

答案 5 :(得分:0)

如果要显示不同页面的自定义标题,则应使用控制器将标题传递给视图。在您的代码中,您将get_author()传递给变量$data['data'],以便您可以使用$data从视图中使用作者数据,因为您已在{{1}中传递data键数组。与使用此语句的$data标题相同,您可以在页面上打印标题。通过在视图页面上回显$data['title'] = "Book Title"

$title

在视图中,您可以像这样打印

public function index()
{
    $data['data'] = $this->BookModel->get_author();
    $data['title'] = "Book Title"
    $data['what_ever_print'] = "Pass value from here and access from view like echo $what_ever_print"
    $this->load->view('templates/header', $data);
    $this->load->view('home/index', $data);
    $this->load->view('templates/footer', $data);
}

或者如果您想在标题标签上打印,可以执行以下操作

<h1 class="kopje"><?php echo $title; ?> </h1>