實例說明
樹形結構能夠以層次形式展示信息,用它來描述具有上下級關系的內容再恰當不過。本實例利用菜單的樹形結構來描述企業的人事組織結構。
關鍵技術
本實例中實現菜單的樹形顯示是通過<table>標簽結合DIV實現的。父節點利用表格來顯示,子節點利用DIV嵌套表格來實現。這樣做的目的是容易對子節點的顯示和隱蔽進行控制。例如,當用戶單擊父節點時,如果子節點沒有展開,將DIV設置為可見就顯示子節點;如果子節點可見,將DIV設置為不可見就可以隱蔽子節點。
設計過程
(1)使用Dreamweaver創建一個PHP動態頁,保存為index.php文件。
(2)創建一個表單,在表單中添加一個2行1列的表格,在表格的第2行再添加一個2行2列的表格。表格的第1列用于顯示節點前的圖標,第2列描述節點文本,主要代碼如下:
<form id="form1"name="form1"method="post"action="">
<table width="372" border="1"align="center"bgcolor="#E6F2F2"bordercolor="#478D8D"
style="border-style:none"cellspacing="0">
<tr>
<td scope="col"align="center"style="border-bottom-style:none">人事組織架構</td>
</tr>
<tr>
<td>
<table width="100%" border="0"cellpadding="0"cellspacing="0"align="left">
<?php //嵌入PHP腳本
$xml_file=simplexm1_load_file("org.xm1"); //從XML文件中加載節點
foreach($xm1_file->children() as $node){ //遍歷根節點
?>
<tr>
<td width="38%"align="right"> //設置節點圖標
<img src="images/rootnode.gif"width="15"height="15"border="0"> </img>
</td>
<td width="62%" left="0px"align="left"><a href="#"onclick="ShowNode(<?php echo $node?>)">
<?php echo $node?></a>
</td>
</tr>
<tr>
<td width="38%"align="center">
</td>
<td width="62%">
<div id=<?php echo $node?>style="display:none"class="HideDiv"> //定義DIV
<table width="100%"border="0"cellpadding="0"cellspacing="0"align="left">
<?php
foreach($node->chidren() as $value){ //遍歷字節點
?>
<tr>
<td width="10%" align="right">
<img src="images/childnode.gif"width="15"height="15"border="0"></img>
</td>
<td width="90%" align="left" ><a href="#"> <?php echo $value?></a>
</td>
</tr>
<?php
}
?>
</table>
</div>
</td>
</tr>
<?php
}
?>
</table>
</td>
</tr>
</table>
<script language="javascript"> //隱蔽或顯示字節點
function ShowNode(ParentID){
var Div=ParentID;
if(Div.style.display=="none"){
Div.style.display="block"; //顯示DIV,以此來顯示字節點
}else.if(Div.style.display=="block"){ //隱蔽DIV,間接隱蔽字節點
Div.style.display="none";
}
}
</script>
</form>
(3)人事組織的架構存儲于XML文件org.xml中。
秘笈心法
動態設置超鏈接。
在設計網站項目時,有時需要根據實際情況動態設置超鏈接的內容。在利用標簽<a>定義超鏈接時可以結合PHP腳本來實現這一功能,例如:
<a href="#"onclick="ShowNode(<?php echo $node?>)"> <?php echo $node?></a>
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請
點擊舉報。