php树状菜单,axure树状菜单

本文目录一览:

用php调数据库做树状显示

数据库设计的时候,通常的做法是用父ID来解决树状结构,也有二叉树等等

id  pid category_name

然后,用递归就能实现,也有引用数组的方式

?php

/**

 * 此方法由@Tonton 提供

 * 

 * @date 2012-12-12 

 */

function genTree5($items) { 

    foreach ($items as $item) 

        $items[$item[‘pid’]][‘son’][$item[‘id’]] = $items[$item[‘id’]]; 

    return isset($items[0][‘son’]) ? $items[0][‘son’] : array(); 

/**

 * 将数据格式化成树形结构

 * @author Xuefen.Tong

 * @param array $items

 * @return array 

 */

function genTree9($items) {

    $tree = array(); //格式化好的树

    foreach ($items as $item)

        if (isset($items[$item[‘pid’]]))

            $items[$item[‘pid’]][‘son’][] = $items[$item[‘id’]];

        else

            $tree[] = $items[$item[‘id’]];

    return $tree;

}

$items = array(

    1 = array(‘id’ = 1, ‘pid’ = 0, ‘name’ = ‘江西省’),

    2 = array(‘id’ = 2, ‘pid’ = 0, ‘name’ = ‘黑龙江省’),

    3 = array(‘id’ = 3, ‘pid’ = 1, ‘name’ = ‘南昌市’),

    4 = array(‘id’ = 4, ‘pid’ = 2, ‘name’ = ‘哈尔滨市’),

    5 = array(‘id’ = 5, ‘pid’ = 2, ‘name’ = ‘鸡西市’),

    6 = array(‘id’ = 6, ‘pid’ = 4, ‘name’ = ‘香坊区’),

    7 = array(‘id’ = 7, ‘pid’ = 4, ‘name’ = ‘南岗区’),

    8 = array(‘id’ = 8, ‘pid’ = 6, ‘name’ = ‘和兴路’),

    9 = array(‘id’ = 9, ‘pid’ = 7, ‘name’ = ‘西大直街’),

    10 = array(‘id’ = 10, ‘pid’ = 8, ‘name’ = ‘东北林业大学’),

    11 = array(‘id’ = 11, ‘pid’ = 9, ‘name’ = ‘哈尔滨工业大学’),

    12 = array(‘id’ = 12, ‘pid’ = 8, ‘name’ = ‘哈尔滨师范大学’),

    13 = array(‘id’ = 13, ‘pid’ = 1, ‘name’ = ‘赣州市’),

    14 = array(‘id’ = 14, ‘pid’ = 13, ‘name’ = ‘赣县’),

    15 = array(‘id’ = 15, ‘pid’ = 13, ‘name’ = ‘于都县’),

    16 = array(‘id’ = 16, ‘pid’ = 14, ‘name’ = ‘茅店镇’),

    17 = array(‘id’ = 17, ‘pid’ = 14, ‘name’ = ‘大田乡’),

    18 = array(‘id’ = 18, ‘pid’ = 16, ‘name’ = ‘义源村’),

    19 = array(‘id’ = 19, ‘pid’ = 16, ‘name’ = ‘上坝村’),

);

echo “pre”;

print_r(genTree5($items));

print_r(genTree9($items));

?

谁有详细php 下拉菜单代码?

这是我自己用的一段代码,你自己改一下,点一下一级文本框,它所属的文本框会收起或伸展。

SCRIPT language=javascript

!–

function menu_tree(meval)

{

var left_n=eval(meval);

if (left_n.style.display==”none”)

{ eval(meval+”.style.display=”;”); }

else

{ eval(meval+”.style.display=’none’;”); }

}

/SCRIPT

TABLE class=navi cellSpacing=1 align=center border=0

TBODY

TR

TH后台 新闻分类/TH/TR/TBODY/TABLEBR

table border=0 cellspacing=1 align=center class=form

tr

th colspan=”2″添加分类/th

/tr

form action=”” method=”post”

tr

td colspan=”2″ align=”center” height=’30’

select name=”fid”

option value=”0″添加大类/option

?php

$query=$db-findall(“shipin where fid=0”);

while ($row=$db-fetch_array($query)){

$new_class_arr[$row[id]]=$row[name];

echo “option value=\”$row[id]\”$row[name]/option”;

}

?

/select

input type=”text” name=”name” value=””

input type=”submit” name=”into_class” value=”添加分类”/

/td

/form

/tr

/table

br

table border=0 cellspacing=1 align=center class=form

tr

th colspan=”2″系统分类/th

/tr

?php

foreach ($new_class_arr as $id=$val){

?

tr

td onClick =”javascript:menu_tree(‘left?=$id ?’);”

form action=”” method=”post”

  IMG src=”images/menu.gif” align=absMiddle border=0 

input type=”hidden” name=”id” value=”?php echo $id?”

input type=”text” name=”name” value=”?php echo $val?”

input type=”submit” name=”update_class” value=”更新”/

input type=”button” value=”删除” onclick=”location.href=’?del=?php echo $id?'”/

/form

/td

/tr

tr id=left?=$id ?

td

table

tbody

?php

$query_fid=$db-findall(“shipin where fid=$id”);

while ($row_fid=$db-fetch_array($query_fid)){

?

tr

td

form action=”” method=”post”

   IMG src=”images/menu.gif” align=absMiddle border=0 

input type=”hidden” name=”id” value=”?php echo $row_fid[id]?”

input type=”text” name=”name” value=”?php echo $row_fid[name]?”

input type=”submit” name=”update_class” value=”更新”/

input type=”button” value=”删除” onclick=”location.href=’?del=?php echo $row_fid[id]?'”/

/form

/td/tr

?php }?

/tbody

/table

/td

/tr

?php

}

?

/table

/BODY/HTML

PHP递归树形菜单

可以参考以下代码,但需要把你自己的数据库链接,表等改一下就可以了

html

head

link href=’style.css’ rel=stylesheet

meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /

script language=”JavaScript” src=”TreeMenu.js”/script

/head

body

?php

//基本变量设置

$GLOBALS[“ID”] =1; //用来跟踪下拉菜单的ID号

$layer=1; //用来跟踪当前菜单的级数

//连接数据库

$Con=mysql_connect(“localhost”,”root”,”1234″);

mysql_select_db(“wiki”);

//提取一级菜单

$sql=”SELECT * FROM wiki where pid=0″;

$result=mysql_query($sql,$Con);

//如果一级菜单存在则开始菜单的显示

if(mysql_num_rows($result)0) ShowTreeMenu($Con,$result,$layer,$ID);

//=============================================

//显示树型菜单函数 ShowTreeMenu($con,$result,$layer)

//$con:数据库连接

//$result:需要显示的菜单记录集

//layer:需要显示的菜单的级数

//=============================================

function ShowTreeMenu($Con,$result,$layer)

{

//取得需要显示的菜单的项目数

$numrows=mysql_num_rows($result);

//开始显示菜单,每个子菜单都用一个表格来表示

echo “table cellpadding=’0′ cellspacing=’0′ border=’0′”;

for($rows=0;$rows$numrows;$rows++)

{

//将当前菜单项目的内容导入数组

$menu=mysql_fetch_array($result);

//提取菜单项目的子菜单记录集

$sql=”select * from wiki where pid=$menu[cid]”;

$result_sub=mysql_query($sql,$Con);

echo “tr”;

//如果该菜单项目有子菜单,则添加JavaScript onClick语句

if(mysql_num_rows($result_sub)0)

{

echo “td width=’20’img src=’folder.gif’ border=’0’/td”;

echo “td class=’Menu’ onClick=’javascript:ShowMenu(Menu”.$GLOBALS[“ID”].”);'”;

}

else

{

echo “td width=’20’img src=’file.gif’ border=’0’/td”;

echo “td class=’Menu'”;

}

//如果该菜单项目没有子菜单,并指定了超级连接地址,则指定为超级连接,

//否则只显示菜单名称

//if($menu[url]!=””)

//echo “a href=’$menu[cid]’$menu[name]/a”;

//else

echo $menu[‘name’];

echo ”

/td

/tr

“;

//如果该菜单项目有子菜单,则显示子菜单

if(mysql_num_rows($result_sub)0)

{

//指定该子菜单的ID和style,以便和onClick语句相对应

echo “tr id=Menu”.$GLOBALS[“ID”]++.” style=’display:none'”;

echo “td width=’20’ /td”;

echo “td”;

//将级数加1

$layer++;

//递归调用ShowTreeMenu()函数,生成子菜单

ShowTreeMenu($Con,$result_sub,$layer);

//子菜单处理完成,返回到递归的上一层,将级数减1

$layer–;

echo “/td/tr”;

}

//继续显示下一个菜单项目

}

echo “/table”;

}

?

/body

/html

php如何分页显示树状结构数据?

分页了还怎么显示树状?能显示 但是很难看 ,看不出效果了,我写后台菜单管理从来不分页,phpcmsV9  也没有分页 。我推荐使用   tree.class.php  phpcmsV9 的一个扩展类文件,可以看看怎么使用。如图  我就是直接显示的:

在php后台中如何实现页面左侧常用的树状多级菜单呢?如果可以的说下原理并留下一个实例吧。谢谢了!

//’name’=’标题’,’main_page’=’左导航’,’r_nav’=’默认主页’

$group_type_arr=array(

2=array(‘name’=’企业管理’,’main_page’=’admin_enterprise’,’r_nav’=’admin_enterprise_open’),

4=array(‘name’=’个人用户管理’,’main_page’=’user_ctrl’,’r_nav’=’admin_user_dat’),

5=array(‘name’=’点评管理’,’main_page’=’comment_ctrl’,’r_nav’=’comment’),

7=array(‘name’=’统计管理’,’main_page’=’stats_ctrl’,’r_nav’=’admin_product_business_count’),

8=array(‘name’=’群组管理’,’main_page’=’group_ctrl’,’r_nav’=’useradmin’),

);

这是左侧第一级菜单,循环这个,在它里面可以直接加入二级菜单

原创文章,作者:HXYH,如若转载,请注明出处:https://www.506064.com/n/141636.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
HXYHHXYH
上一篇 2024-10-08 17:53
下一篇 2024-10-08 17:53

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • Python绘制树状图

    本文将从多个方面详细阐述Python如何绘制树状图。树状图展示了一个层级结构,常用于表示组织结构、家谱、关系图等。Python作为一种高级编程语言,具有丰富的可视化库,有许多方法可…

    编程 2025-04-29
  • 使用PHP foreach遍历有相同属性的值

    本篇文章将介绍如何使用PHP foreach遍历具有相同属性的值,并给出相应的代码示例。 一、基础概念 在讲解如何使用PHP foreach遍历有相同属性的值之前,我们需要先了解几…

    编程 2025-04-28
  • PHP获取301跳转后的地址

    本文将为大家介绍如何使用PHP获取301跳转后的地址。301重定向是什么呢?当我们访问一个网页A,但是它已经被迁移到了另一个地址B,此时若服务器端做了301重定向,那么你的浏览器在…

    编程 2025-04-27
  • PHP登录页面代码实现

    本文将从多个方面详细阐述如何使用PHP编写一个简单的登录页面。 1. PHP登录页面基本架构 在PHP登录页面中,需要包含HTML表单,用户在表单中输入账号密码等信息,提交表单后服…

    编程 2025-04-27
  • PHP与Python的比较

    本文将会对PHP与Python进行比较和对比分析,包括语法特性、优缺点等方面。帮助读者更好地理解和使用这两种语言。 一、语法特性 PHP语法特性: <?php // 简单的P…

    编程 2025-04-27
  • PHP版本管理工具phpenv详解

    在PHP项目开发过程中,我们可能需要用到不同版本的PHP环境来试验不同的功能或避免不同版本的兼容性问题。或者我们需要在同一台服务器上同时运行多个不同版本的PHP语言。但是每次手动安…

    编程 2025-04-24
  • Axure导出HTML

    一、导出HTML的方法 Axure RP是一款流行的低保真原型设计工具,使用它可以快速制作交互原型,同时也支持将原型导出为HTML文件。导出HTML文件的方法如下: 1、在Axur…

    编程 2025-04-24
  • 小程序下拉菜单详解

    一、下拉菜单的基本用法 小程序下拉菜单是一个常用的交互组件,用于在需要选取内容的时候,展示选项并让用户进行选择。下面是下拉菜单的基本用法示例代码: <view class=”…

    编程 2025-04-24

发表回复

登录后才能评论