【发布时间】:2009-11-12 00:49:35
【问题描述】:
如何将来自同一个控制器的两个不同的函数输出放到同一个视图(页面)中? 例如,我有一个转到“article” div 的函数,以及我试图在“aside” div 中使用的另一个函数。 (此处使用 HTML 5 命名法)
我已经在 (view)aside div 中使用了实际的 db 查询,但它仍然只显示第 1 篇文章功能。
我已将 $data('result') 变量更改为单独的变量,这没有区别。
我在文章 div 中显示我必须完成的工作的待办事项列表,然后在旁边的 div 中显示已完成的待办事项的标题。
我想我把这个解释弄得一团糟。你会使用来自不同控制器的函数吗?
这是控制器中的第一个代码
function index()
{
$this->load->model('work_m');
$data = array();
$config['base_url'] = base_url() . 'index.php/work/index/';
$config['total_rows'] = $this->db->count_all('work');
$config['per_page'] = '10';
$config['full_tag_open'] = '<div id="pagination">';
$config['full_tag_close'] = '</div>';
$this->pagination->initialize($config);
$data['result'] = $this->work_m->get_records($config['per_page'], $this->uri->
segment(3));
$tmpl = array('table_open' =>
'<table border="0" cellpadding="0" cellspacing="0">', 'heading_row_start' =>
'<tr class="heading">', 'heading_row_end' => '</tr>', 'heading_cell_start' =>
'<th>', 'heading_cell_end' => '</th>', 'row_start' => '<tr>', 'row_end' =>
'</tr>', 'cell_start' => '<td>', 'cell_end' => '</td>', 'row_alt_start' =>
'<tr class="alt">', 'row_alt_end' => '</tr>', 'cell_alt_start' => '<td>',
'cell_alt_end' => '</td>', 'table_close' => '</table>');
$this->table->set_template($tmpl);
$this->table->set_caption("Work Items");
//-- Header Row
$this->table->set_heading('ID', 'Date', 'Title', 'Done', 'Item');
//-- Content Rows
$data['title'] = 'Page Display';
$this->load->view('work_links', $data);
注意它指向work_links,一个视图
下一个函数就是这个
function done()
{
$data = array();
if ($query = $this->work_m->dead_work()) {
$data['dead'] = $query;
}
$tmpl = array('table_open' =>
'<table border="0" cellpadding="0" cellspacing="0">', 'heading_row_start' =>
'<tr class="heading">', 'heading_row_end' => '</tr>', 'heading_cell_start' =>
'<th>', 'heading_cell_end' => '</th>', 'row_start' => '<tr>', 'row_end' =>
'</tr>', 'cell_start' => '<td>', 'cell_end' => '</td>', 'row_alt_start' =>
'<tr class="alt">', 'row_alt_end' => '</tr>', 'cell_alt_start' => '<td>',
'cell_alt_end' => '</td>', 'table_close' => '</table>');
$this->table->set_template($tmpl);
$this->load->view('work_links', $data);
}
它们背后的模型是对数据库的基本调用
现在视图中的这段代码与上面的第一个函数(在文章 div 中)一起工作并且完美地工作
foreach($result as $row)
{
$this->table->add_row(
anchor("work/fill_form/$row->id", $row->id),
$row->date,
$row->title,
$row->compl,
$this->typography->auto_typography($row->item)
);
}
$table = $this->table->generate();
echo $table;
这是进入侧 div 的第二个代码(与上面的第二个函数一起使用)
if (isset($dead)){
foreach($dead as $row)
{
$this->table->add_row(
$row->id,
$row->title,
$row->finish
);
}
}
$this->table->set_heading('ID', 'Title');
$table = $this->table->generate();
echo $table;
无论我做什么,最后一个代码都只会从第一个函数中获取数据。
【问题讨论】:
-
你试过只在第一个中调用另一个控制器函数吗?
-
你甚至可以使用类变量而不是
$data,虽然这可能有点脏... -
我真的很想得到你想说的......我不能......你能输入一些代码,以便我们至少可以看到你做了什么吗?跨度>
标签: php codeigniter