【问题标题】:codeigniter :load view inside div of a viewcodeigniter : 在视图的 div 中加载视图
【发布时间】:2012-12-27 14:35:48
【问题描述】:

可以说我有这个观点(主要)

<body>
lorem epsim
<div table></div>
lorem epsim
</body>

在控制器 control1.php 我做

$this->load->view('header');
$this->load->view('main',$data);
$this->load->view('footer');

现在我需要从另一个视图 (tbl.php) 加载 div=table 的内容,它是从另一个控制器调用的

control2.php

function load_table(){
$data['x']=1;
$this->load->view('tbl.php',$data);
}

tbl.php 视图

<ul>$x</ul>

我该怎么做?

我尝试从控制器 1 加载控制器 2,并将函数 load_table 分配给变量并将其传递给主视图,但它不起作用,因为 load-> 执行视图而不是将输出保存到变量..

原因: 我需要这样做的是 tbl.php 视图是一个复杂的表,我需要通过 ajax 调用刷新和加载它,所以我需要它单独在不同的视图上 那么有人可以向我解释我该如何解决这个问题吗?

【问题讨论】:

  • 请从您的帖子中编辑“文字朗读”。

标签: codeigniter codeigniter-2


【解决方案1】:

您不能从另一个单独的控制器调用一个控制器方法。但是,您可以获取表格视图的输出并使用它:

// main.php
<body>
lorem epsim
<div table><?php echo $table_content; ?></div>
lorem epsim
</body>

.

// control1.php

$table_data['x'] = 1;
$data['table_content'] = $this->load->view('tbl.php', $table_data, TRUE);

$this->load->view('header');
$this->load->view('main',$data);
$this->load->view('footer');

因此,您将数据传递给 tbl.php 视图并将其传递给 load->view 方法 - 还将 TRUE 作为第三个参数传递 - 这将返回该视图的内容作为字符串 (而不是将其输出到浏览器)。现在,您有一个 $data 变量要传递给包含表格 html 的 main 视图,您可以在主视图中回显它。

如何从视图中获取$data['table_content'] 数据取决于您。您可以在 inside control1.php 创建另一个控制器方法,您可以创建一个帮助文件,该文件可以将视图加载到字符串中并返回,等等。

【讨论】:

  • 在您的情况下,如何查看 $table_data?
  • @freestyle - 哪个视图?
  • 就像现在的代码一样 - 您可以使用 $x 变量访问 tbl.php 文件中的 x 变量。然后,您将能够使用$table_content 变量访问main 视图中的table_content 变量。
【解决方案2】:

也许您可以在其中创建一个包含表格代码的视图,然后您可以在 div 中为 ajax 执行操作

<div id="for_ajax">
       <?php $this->load->view('table'); ?>
</div>

我有类似的需求,但我的需求就像是解决问题的 cmets 墙。

【讨论】:

  • 如果我这样做了,我将无法将变量传递给 tbl 视图。
  • 你可以这样做,我使用一个template.php,尝试在main.php 视图中加载表格视图。主视图接收 $data 所以表视图也接收它不会有问题。
【解决方案3】:

在视图中使用 php 块中的以下内容

$CI = &get_instance();
$CI->load->view('view_name');

【讨论】:

    猜你喜欢
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 2013-01-10
    • 1970-01-01
    相关资源
    最近更新 更多