PHP+mysql实现的三级联动菜单功能示例


Posted in PHP onFebruary 15, 2019

本文实例讲述了PHP+mysql实现的三级联动菜单功能。分享给大家供大家参考,具体如下:

数据库mysql

-- 数据库: `student`
--
-- --------------------------------------------------------
--
-- 表的结构 `student`
--
CREATE TABLE `student` (
 `id` int(50) NOT NULL auto_increment,
 `name` varchar(50) collate utf8_unicode_ci NOT NULL,
 `dept` varchar(50) collate utf8_unicode_ci NOT NULL,
 `class` varchar(50) collate utf8_unicode_ci NOT NULL,
 `sex` varchar(50) collate utf8_unicode_ci NOT NULL,
 `dept_id` int(50) NOT NULL,
 `class_id` int(50) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;
--
-- 导出表中的数据 `student`
--
INSERT INTO `student` (`id`, `name`, `dept`, `class`, `sex`, `dept_id`, `class_id`) VALUES
(1, '计算机名字', '计算机工程系', '计061', '男', 1, 11),
(2, '教计名字', '计算机工程系', '教技061', '男', 1, 14),
(3, '管理名字', '管理系', '管理061', '女', 2, 21),
(4, '机械名字', '机械工程系', '自动化061', '男', 3, 31);

index.php代码:

<?php
$link=mysql_connect("localhost","root","") or die("数据库服务器连接错误".mysql_error());
mysql_select_db("student",$link) or die("数据库访问错误".mysql_error());
mysql_query("set character set gb2312");
mysql_query("set names gb2312");
?>
<html>
 <head>
 <title>下拉框连动</title>
 </head>
<body>
<script language="JavaScript">
//二级菜单数组
var subcat = new Array();
<?php
$i=0;
$sql="select * from student";
$query=mysql_query($sql,$link);
while($arr=mysql_fetch_array($query))
{
 echo "subcat[".$i++."] = new Array('".$arr["dept_id"]."','".$arr["class"]."','".$arr["class_id"]."');\n";
}
?>
//三级菜单数组
var subcat2 = new Array();
<?php
$i=0;
$sql="select * from student";
$query=mysql_query($sql,$link);
while($arr=mysql_fetch_array($query))
{
 echo "subcat2[".$i++."] = new Array('".$arr["class_id"]."','".$arr["class"]."','".$arr["name"]."');\n";
}
?>
function changeselect1(locationid)
{
 document.form1.s2.length = 0;
 document.form1.s2.options[0] = new Option('22请选择22','');
 for (i=0; i<subcat.length; i++)
 {
 if (subcat[i][0] == locationid)
 {
  document.form1.s2.options[document.form1.s2.length] = new Option(subcat[i][1], subcat[i][2]);
 }
 }
}
function changeselect2(locationid)
{
 document.form1.s3.length = 0;
 document.form1.s3.options[0] = new Option('33请选择33','');
 for (i=0; i<subcat2.length; i++)
 {
 if (subcat2[i][0] == locationid)
 {
  document.form1.s3.options[document.form1.s3.length] = new Option(subcat2[i][2], subcat2[i][0]);
 }
 }
}
</script>三级联动演示:<BR>
<form name="form1">
<select name="s1" onChange="changeselect1(this.value)">
<option>--请选择--</option>
<option value=1>计算机工程系</option>
<option value=2>管理系</option>
<option value=3>机械工程系</option>
</select>
<select name="s2" onChange="changeselect2(this.value)">
 <option>--请选择--</option>
</select>
<select name="s3">
 <option>--请选择--</option>
</select>
</form>
</body>
</html>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP和ACCESS写聊天室(九)
Oct 09 PHP
深入php之规范编程命名小结
May 15 PHP
php 常用算法和时间复杂度
Jul 01 PHP
PHP入门之常量简介和系统常量
May 12 PHP
Yii使用CLinkPager分页实例详解
Jul 23 PHP
ThinkPHP登录功能的实现方法
Aug 20 PHP
PHP实现根据图片色界在不同位置加水印的方法
Aug 08 PHP
2款PHP无限级分类实例代码
Nov 11 PHP
PHP定时任务获取微信access_token的方法
Oct 10 PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 PHP
laravel框架创建授权策略实例分析
Nov 22 PHP
PHP程序员必须知道的两种日志实例分析
May 14 PHP
PHP7 echo和print语句实例用法
Feb 15 #PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
Feb 15 #PHP
PHP Include文件实例讲解
Feb 15 #PHP
PHP XML Expat解析器知识点总结
Feb 15 #PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
Feb 15 #PHP
PHP fopen函数用法实例讲解
Feb 15 #PHP
PHP fclose函数用法总结
Feb 15 #PHP
You might like
php 无限级分类,超级简单的无限级分类,支持输出树状图
2014/06/29 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
在b/s开发中经常用到的javaScript技术
2006/08/23 Javascript
javascript 面向对象编程基础:封装
2009/08/21 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
javascript中createElement的两种创建方式
2015/05/14 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
2019/04/26 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
跟老齐学Python之玩转字符串(3)
2014/09/14 Python
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
Python中的推导式使用详解
2015/06/03 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
如何快速理解python的垃圾回收机制
2020/09/01 Python
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
AOP的定义以及作用
2013/09/08 面试题
个人收入证明范本
2014/01/12 职场文书
小学教师听课制度
2014/02/01 职场文书
环保建议书500字
2014/05/14 职场文书
环保小标语
2014/06/13 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang
手残删除python之后的补救方法
2021/06/26 Python
SQL Server使用导出向导功能
2022/04/08 SQL Server