我正在努力通過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