如何在iframe中加载codeigniter视图

时间:2013-03-19 13:36:01

标签: php codeigniter iframe view

我尝试在iframe中加载codeigniter视图, <iframe src="<?php $this->load->view('lists');?/>"></iframe> 但页面无法加载。 随着我的框架工作。 如何在iframe中加载此视图?

4 个答案:

答案 0 :(得分:6)

在控制器中创建一个功能

//project.php

function view_list()
{
$this->load->view('lists');
}

并在视图页面中调用

<iframe src="<?php echo site_url('project/view_list');?>">>    </iframe>

答案 1 :(得分:1)

我想用多个视图平铺一个网站,每个视图都在自己的iframe中,这就是我所做的:

控制器 book.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Book extends CI_Controller {


    public function index(){
        $this->shell();
    }


    public function shell(){

        $data['title'] = "Home";
        $data['frames'] = array(
            "book/events"
            ,"book/sales"
            ,"book/purchases"
            ,"book/cashflows"
        );

        $this->load->view("shell", $data);

    }


    public function events(){
        $this->load->view("events");
    }

    public function sales(){
        $this->load->view("sales");
    }

    public function purchases(){
        $this->load->view("purchases");
    }

    public function cashflows(){
        $this->load->view("cashflows");
    }


}

视图 shell.php 包含一个foreach语句,让我动态传递切片。请注意每个站点的URL是如何写在^^上面的控制器中的(例如&#34; book / events&#34;)。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title><?php echo $title ?></title>     
    </head>
    <body>

        <?php foreach ($frames as $frame):?>
            <iframe src="<?php echo $frame?>"></iframe>
        <?php endforeach;?>

        <div class="footer">
            Page rendered in <strong>{elapsed_time}</strong> seconds</p>
        </div>
    </body>
</html>

然后每个瓷砖都是它自己的网站,就像这样:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Events</title>       
    </head>
    <body>
        <div class="header">Events</div>
        <div class="content"> Bla bla bla you have no money</div>
        <div class="footer">
            Page rendered in <strong>{elapsed_time}</strong> seconds</p>
        </div>
    </body>
</html>

答案 2 :(得分:0)

这是因为iframe在另一个页面上? 您尚未在该页面上指定控制器功能,因此它无法识别视图。我认为您必须将视图中的控制器日期放入您拥有iframe的视图的功能中,所以喜欢这个。

function list_view()
{
//functions for your listview
}

function viewforiframe()
{
//function for you view where the iframe is located
+
//functions for your listview
}

注意:Deon给出的答案也是值得关注的。如果没有良好的链接,你将永远看不到视图。

答案 3 :(得分:0)

您无法将纯HTML分配给iframe元素src属性。你应该有一个控制器来渲染你的html,然后将src属性设置为该控制器。

<iframe src="<?php echo base_url( 'controller_that_render_list_html' ) ?>"></iframe>