我正在努力通过Codeigniter模型调用生成嵌套选项卡标记,并欢迎任何有见地的评论。难点在于所产生的标记具有不必要的项目数据块重复。使用不直接相互连接的多个视图可能是问题所在。Codeigniter嵌套选项卡设置的多个视图
这里的控制器:
function projects() {
$this->load->model('msm_projects');
$data['cats']=$this->msm_projects->catid()->result_array();
$this->load->view('vup_projects', $data);
foreach ($data['cats'] as $item)
{
$data2['projects']=$this->msm_projects->catproj($item['catid'])->result_array();
$this->load->view('vup_projects2', $data2);
}
}
型号:
function catid() {
return $this->db->query("SELECT DISTINCT catid, cat FROM category INNER JOIN projects ON catid = projcat WHERE projpub=1 ORDER BY catid ASC");
}
function catproj($catid) {
return $this->db->query("SELECT catid, cat, projcat, projid, projtit FROM projects INNER JOIN category ON projcat = catid WHERE projcat = $catid AND projpub=1 ORDER BY catid ASC");
}
以下是这是两个部分的意见。我怀疑这是一切都出错的地方。这两个观点之间有一个不完美的联系,我很难考虑。
视图1称为 'vup_projects'
<div id="wrapper">
<div class="yui3-g">
<div class="yui3-u-1"><div id="topbloc"><img src="http://localhost/getop/base-images/topbloc.gif" width="800" height="50" align="middle"></div></div>
<div class="yui3-u-1">
<div id="navbloc">
<div id="linx">
<ul >
<li id="about"><?php echo anchor('cu_tya/about', 'about'); ?></li>
<li id="ourwork"><?php echo anchor('cu_projects/projects', 'projects'); ?></li>
<li id="contact"><?php echo anchor('cu_tya/contact', 'contact'); ?></li>
<li id="member"><?php echo anchor('cu_sites/pager', 'your page'); ?></li>
</ul>
</div>
</div>
</div>
<div class="yui3-u-1">
<div id="container">
<ul>
<?php
foreach ($cats as $item) // top tabs
{
echo '<li><a href=#fragment-'.$item['catid'].'><span>'.$item['cat'].'</span></a></li>';
}
?>
</ul>
而第二种观点vup_projects2
<?php foreach ($cats as $item) { ?> <!-- main divs -->
<div id="fragment-<?php echo $item['catid'];?>">
<ul>
<?php foreach ($projects as $project)
{ ?>
<li>
<a href="#fragment-<? echo $project['projid']?>a"><span><?php echo $project['projtit'];?></span></a></li>
<?php } ?>
</ul>
<?php foreach ($projects as $project)
{ ?>
<div id="fragment-<?php echo $project['projid'];?>a" >
<?php echo $project['projtit'].' hooray';?>
</div>
<?php } ?>
</div>
<?php } ?>
</div> <!-- container -->
</div> <!-- YUI-UNIT-1-->
</div> <!-- YUI-GRID -->
</div> <!-- wrapper -->
谢谢。我正在处理你的回应,但立即从你的代码和我的工作中看出,$ data2数组比我想象的更分层,因此更难获得有用的数据。我很乐意做你建议的一个查询。什么阻止了我的想法,我也想申请分页。要将其应用到按类别组织的项目中,我需要访问查询,在控制器中按类别查询项目。 – Tom 2011-04-27 08:36:45
花了很长时间来解决这个问题,我正在取得某种进展。我怀疑,因为这很复杂,我没有以最佳方式使用CI。然而,花了这么多时间,我无法改变方向。数组争夺是CI中的全职活动! – Tom 2011-04-27 14:02:14
看到我的评论下面也许更好的描述我在想什么。 – tgriesser 2011-04-28 04:19:51