今天有個case要做會員層級的階層圖
畫面如下:
HTML:
<ul id="org" style="display:none">
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美
<ul>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美
<ul>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
</ul>
</li>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美
<ul>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
</ul>
</li>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美
<ul>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
</ul>
</li>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美
<ul>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
</ul>
</li>
</ul>
</li>
</ul>
<link rel="stylesheet" href="/css/jquery.jOrgChart.css">
<script type="text/javascript" src="/js/jquery.jOrgChart.js"></script>
<script>
$(document).ready(function() {
$("#org").jOrgChart({
chartElement: '#chart'
});
});
</script>
以下是我自想的寫法
PHP取得資料:
$data = get_chart($user_id);
// 取得層級資料
function get_chart($user_id,$level=1)
{
global $CFG,$WFunc,$UFunc;
if ($level == 1) // 是否為第一層
{
$result = get_field_array($table_user,"id='$user_id'");
} else {
$result = get_field_array($table_user,"gid='$user_id'");
}
$level++;
$data = array();
if ($result)
{
foreach($result as $rs)
{
$data[$rs['id']] = array(
'id'=>$rs['id'],
'gid'=>$rs['gid'],
'name'=>$rs['name'],
'next'=>get_chart($rs['id'],$level)
);
}
}
return $data;
}
// 顯示層級
function show_level_data($next_data=array())
{
if ($next_data)
{
$r = '<ul>';
foreach($next_data as $user_id=>$rs){
$r .= '<li><span class="icon"><img alt="" src="/images/icon_man.png" /></span>';
$r .= $rs['name'];
$r .= show_level_data($rs['next']);
$r .= '</li>';
}
$r .= '</ul>';
}
return $r;
}
頁面程式:
<ul id="org" style="display:none">
<? foreach($data as $user_id=>$rs){?>
<li><span class="icon"><img src="/images/icon_man.png" alt=""></span>
<?=$rs['name']?>
<?=show_level_data($rs['next']);?>
</li>
<? }?>
</ul>

Hi 你的php文章寫的很好,我也在學php是否可以跟你請教呢?
回覆刪除