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中实现进程间通讯
Oct 09 PHP
cache_lite试用
Feb 14 PHP
FCKeditor添加自定义按钮
Mar 27 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Jan 27 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 PHP
几个有用的php字符串过滤,转换函数代码
May 01 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 PHP
PHP输出缓冲控制Output Control系列函数详解
Jul 02 PHP
基于swoole实现多人聊天室
Jun 14 PHP
PHP中用Trait封装单例模式的实现
Dec 18 PHP
php下的原生ajax请求用法实例分析
Feb 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控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
调试Node.JS的辅助工具(NodeWatcher)
2012/01/04 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
AngularJS基础 ng-if 指令用法
2016/08/01 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
如何快速上手Vuex
2017/02/14 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
python双向链表实现实例代码
2013/11/21 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
python机器学习理论与实战(六)支持向量机
2018/01/19 Python
Python基于递归实现电话号码映射功能示例
2018/04/13 Python
django输出html内容的实例
2018/05/27 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
通过实例了解python property属性
2019/11/01 Python
python super用法及原理详解
2020/01/20 Python
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
次世代生活态度:Hypebeast
2018/07/05 全球购物
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
2014年服务员个人工作总结
2014/12/23 职场文书
门卫岗位职责
2015/02/09 职场文书
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript