Zal*_*oza 0 codeigniter codeigniter-2
让我说我有这个观点(主要)
<body>
lorem epsim
<div table></div>
lorem epsim
</body>
Run Code Online (Sandbox Code Playgroud)
在控制器control1.php我做
$this->load->view('header');
$this->load->view('main',$data);
$this->load->view('footer');
Run Code Online (Sandbox Code Playgroud)
现在我需要从另一个视图(tbl.php)加载div = table的内容,该视图是从另一个控制器调用的
control2.php
function load_table(){
$data['x']=1;
$this->load->view('tbl.php',$data);
}
Run Code Online (Sandbox Code Playgroud)
tbl.php视图
<ul>$x</ul>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?
我试图从控制器1加载控制器2并将函数load_table分配给变量并将其传递给主视图,但它没有工作cuz load-> view执行而不是将输出保存到变量..
原因: 我需要这样做是因为tbl.php视图是一个复杂的表,我需要通过ajax调用刷新和加载,所以我需要它单独在不同的视图上,所以有人可以向我解释我该如何工作出去?
您不能从另一个单独的控制器调用一个控制器方法.但是,您可以获取表视图的输出并使用:
// main.php
<body>
lorem epsim
<div table><?php echo $table_content; ?></div>
lorem epsim
</body>
Run Code Online (Sandbox Code Playgroud)
.
// 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');
Run Code Online (Sandbox Code Playgroud)
因此,您将数据传递给tbl.php视图并将其传递给load-> view方法 - 也TRUE作为第三个参数传递- 它将该视图的内容作为字符串返回(而不是将其输出到浏览器).现在,您有一个$ data变量传递给main包含表html 的视图,您可以在主视图中回显它.
如何$data['table_content']从视图中获取数据取决于您.您可以在 control1.php中创建另一个控制器方法,您可以创建一个帮助文件,可以将视图加载到字符串中并返回该文件等.
| 归档时间: |
|
| 查看次数: |
11156 次 |
| 最近记录: |