热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

select联动mysql_select二级联动,数据库动态加载

比如一个select显示所有部门,另一个select显示该部门的所有员工。为了达到这种效果,肯定要先从数据库中取出部门,为第一个selec

比如一个select显示所有部门,另一个select显示该部门的所有员工。

为了达到这种效果,肯定要先从数据库中取出部门,为第一个select加载选项,然后根据所选择的选项,从数据库中取出属于该部门的所有员工,为第二个select加载选项。此即所谓二级联动。多级则继续根据条件查询、加载,操作一样。

要把数据加载到网页元素很容易,因为服务器端脚本可以嵌入到客户端脚本里。如可以有如下形式:

document.myform.selectname.options[index].value=;

关键是如何把第一个select所选择的值传到第二个select,准确来说是传递参数给下一个查询语句,像的section。也就是把客户端脚本的值传到服务器脚本的变量。如果可以这样就好了:

=document.myform.selectname.options[index].value;

可惜不行。

客户端脚本要向服务器端脚本传值,只能通过网络,也就是向服务器端发送请求,并把这些值通过参数传过去。

可以在改变选项时触发表单的提交:

OnChange="action='webname.jsp';target='_self';submit();"

表单将参数传回本页面,就可以用服务器脚本获取了:

问题是,页面一开始显示时,并不会触发onChange事件,也就是说所得到的section初值为空,这样第二个select一开始就不能正确显示了,而只能是用户先在第一个select中选择了其他选项,再回头选第一个选项的时候才行。

解决办法是在页面加载完成时就触发第一个select的onChange事件。

也可以定义一个变量来保存select第一个选项的值,实质是从数据库中按条件取出来的第一个值:

vector=UserDB.getSection();

initsection=vector.elementAt(0).toString();

%>

页面加载时,select还没有被onChange过,因而section为空,于是选项应该加载第一个section,也就是initsection:

另外,当两次选择同一选项时,select并没有被change,所以也不会触发onChange事件。要在这种情况下触发onChange事件,最简单的方法是在每次选择后将当前选项改回初始值:

document.all.selectname.options[0].selected=true;

这个选项(options[0])应该是用户不会选择的选项,也就是不会被change的选项,像以下这样的:

请选择

这样,每选择一次其他选项,即使重复选择同一个选项,也可以触发onChange了。



推荐阅读
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 本文探讨了使用C#在SQL Server和Access数据库中批量插入多条数据的性能差异。通过具体代码示例,详细分析了两种数据库的执行效率,并提供了优化建议。 ... [详细]
  • 本文详细介绍了如何在 MySQL 中授予和撤销用户权限。包括创建用户、赋予不同级别的权限(如表级、数据库级、服务器级)、使权限生效、查看用户权限以及撤销权限的方法。此外,还提供了常见错误及其解决方法。 ... [详细]
  • 本文详细介绍超文本标记语言(HTML)的基本概念与语法结构。HTML是构建网页的核心语言,通过标记标签描述页面内容,帮助开发者创建结构化、语义化的Web页面。 ... [详细]
  • 解析SQL查询结果的排序问题及其解决方案
    本文探讨了为什么某些SQL查询返回的数据集未能按预期顺序排列,并提供了详细的解决方案,帮助开发者理解并解决这一常见问题。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 本文探讨了在使用Selenium进行自动化测试时,由于webdriver对象实例化位置不同而导致浏览器闪退的问题,并提供了详细的代码示例和解决方案。 ... [详细]
  • 本文探讨了Java编程的核心要素,特别是其面向对象的特性,并详细介绍了Java虚拟机、类装载器体系结构、Java类文件和Java API等关键技术。这些技术使得Java成为一种功能强大且易于使用的编程语言。 ... [详细]
  • 反向投影技术主要用于在大型输入图像中定位特定的小型模板图像。通过直方图对比,它能够识别出最匹配的区域或点,从而确定模板图像在输入图像中的位置。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 本文介绍了如何利用 Spring Boot 和 Groovy 构建一个灵活且可扩展的动态计算引擎,以满足钱包应用中类似余额宝功能的推广需求。我们将探讨不同的设计方案,并最终选择最适合的技术栈来实现这一目标。 ... [详细]
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
author-avatar
mobiledu2502859163
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有