JavaScript + PHP 应用二:网页设计中树形菜单的动态实现
树形菜单,熟悉Windows程序管理器的读者一定不会陌生。单击项目左侧的+号,项目展开;再次单击,项目收缩。读过很多篇有关树形菜单的JavaScript实现方法,原理很简单,都是利用Style中display属性的控制。笔者本文的重点并不侧重于此,倒是想谈一谈如何实现每一次从数据库中提取数据并动态更新树形菜单。
树形菜单主要用来导航。网站有很多栏目,每个栏目下有很多子栏目,栏目经常变动,如增加新栏目,改变现有栏目名称,调整主次栏目之间关系等等,如果每一次都去改动页面代码,非常不便。而且因为信息都存放在数据库中,动态实现变得可能和必要。 本文并不侧重理论,只是为大家提供自己的一段代码,和大家一起来探讨一下PHP实现问题。为了便于说明,笔者对数据库作了一些改动,假设菜单字符串存放在menu表中,main字段存放主菜单字符串,sub字段存放子菜单字符串,subid字段存放子菜单标识。
</td> </tr> <tr id="<?php echo "s_".$Key[$i]; ?>" style="display:none"> <td width="15"></td> <td colspan="2"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="f9"> <?php while ($DB->next_record()){ ?> <tr> <td width="12"> <img src="images/<?php echo ++$j==$DB->nf()?"l.gif":"t.gif"; ?>" width="12" height="21"></td> ////需要说明一下,$j变量在这里用来决定显示什么图片。此句的意思是,子菜单的最后一项显示l.gif,其它项显示t.gif <td> <?php echo "<a href=\"yoururl\">yourstr</a>";?></td> </tr> <?php } ?> </table> </td> </tr> </table> <?php } ?> 到此为止,PHP的使命已经结束,大家可以把代码运行一下,看看输出是什么。总而言之,它的输出结果正是树形菜单所要的结构。下面我们需要构造Javascript代码。很简单,我不打算作向详细的描述。 <script language="javascript1.2"> <!-- function MakeMenu(id){ mid="m_"+id; sid="s_"+id; with (document){ if (all(sid).style.display=="none"){ all(sid).style.display=""; all(mid).innerHTML="<img src='images/m.gif' width='9' height='21'>"; }else{ all(sid).style.display="none"; all(mid).innerHTML="<img src='images/p.gif' width='9' height='21'>"; } } } function MakeShow(to){ with (document){ if (to=='in'){ window.event.srcElement.style.color="red"; window.event.srcElement.style.fontWeight="bold"; }else{ window.event.srcElement.style.color=""; window.event.srcElement.style.fontWeight=""; 上一篇:Servlet和JSP概述 下一篇:jscript错误代码及相应解释大全 更多相关文章
|
推荐文章
精彩文章
|