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 相关文章推荐
一个简单计数器的源代码
Oct 09 PHP
excellent!――ASCII Art(由目标图象生成ascii)
Feb 20 PHP
纯真IP数据库的应用 IP地址转化成十进制
Jun 14 PHP
php引用地址改变变量值的问题
Mar 23 PHP
php中长文章分页显示实现代码
Sep 29 PHP
解析PHP中intval()等int转换时的意外异常情况
Jun 21 PHP
php生成缩略图示例代码分享(使用gd库实现)
Jan 20 PHP
PHP常用数组函数介绍
Jul 28 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 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网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
javascript 动态创建表格
2015/01/08 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
由浅入深讲解Javascript继承机制与simple-inheritance源码分析
2015/12/13 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
Bootstrap table使用方法记录
2017/08/23 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
django框架自定义模板标签(template tag)操作示例
2019/06/24 Python
python缩进长度是否统一
2020/08/02 Python
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
文化与传播毕业生求职信
2014/03/09 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android