js调数据库二级联动,js二级联动下拉列表怎么实现

本文目录一览:

二级联动菜单,数据是从数据库的一个表中查询出来的,js显示之后在显示下一条的时候如何清空之前显示的。

这里有一个多级联动下拉select菜单

还可以自己设置默认显示值

里面有代码可以参考

jsp二级联动js参数回填表单的问题

用AJAX

基于Servlet的AJAX

这是一个很常见的UI,当用户在第一个选择框里选择ZHEJIANG时,第二个选择框要出现ZHEJIANG的城市;当用户在第一个选择框里选择JIANGSU时,第二个选择框里要出现JIANGSU的城市。

首先,我们来看配置文件web.xml,在里面配置一个servlet,跟往常一样:

web-app version=”2.4″

xmlns=””

xmlns:xsi=””

xsi:schemaLocation=”

servlet

servlet-nameSelectCityServlet/servlet-name

servlet-classcom.stephen.servlet.SelectCityServlet/servlet-class

/servlet

servlet-mapping

servlet-nameSelectCityServlet/servlet-name

url-pattern/servlet/SelectCityServlet/url-pattern

/servlet-mapping

/web-app

然后,来看我们的JSP文件:

!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”

html

head

titleMyHtml.html/title

meta http-equiv=”keywords” content=”keyword1,keyword2,keyword3″

meta http-equiv=”description” content=”this is my page”

!–link rel=”stylesheet” type=”text/css” href=”./styles.css”–

/head

script type=”text/javascript”

function getResult(stateVal) {

var url = “servlet/SelectCityServlet?state=”+stateVal;

if (window.XMLHttpRequest) {

req = new XMLHttpRequest();

}else if (window.ActiveXObject) {

req = new ActiveXObject(“Microsoft.XMLHTTP”);

}

if(req){

req.open(“GET”,url, true);

req.onreadystatechange = complete;

req.send(null);

}

}

function complete(){

if (req.readyState == 4) {

if (req.status == 200) {

var city = req.responseXML.getElementsByTagName(“city”);

;

var str=new Array();

for(var i=0;icity.length;i++){

str[i]=city[i].firstChild.data;

}

(document.getElementById(“city”));

buildSelect(str,document.getElementById(“city”));

}

}

}

function buildSelect(str,sel) {

sel.options.length=0;

for(var i=0;istr.length;i++) {

sel.options[sel.options.length]=new Option(str[i],str[i])

}

}

/script

body

select name=”state” onChange=”getResult(this.value)”

option value=””Select/option

option value=”zj”ZEHJIANG/option

option value=”zs”JIANGSU/option

/select

select id=”city”

option value=””CITY/option

/select

/body

/html

第一眼看来,跟我们平常的JSP没有两样。仔细一看,不同在JS里头。

我们首先来看第一个方法:getResult(stateVal),在这个方法里,首先是取得XmlHttpRequest;然后设置该请求的url:req.open(“GET”,url, true);接着设置请求返回值的接收方法:req.onreadystatechange = complete;该返回值的接收方法为——complete();最后是发送请求:req.send(null);

然后我们来看我们的返回值接收方法:complete(),这这个方法里,首先判断是否正确返回,如果正确返回,用DOM对返回的XML文件进行解析。关于DOM的使用,这里不再讲述,请大家参阅相关文档。得到city的值以后,再通过buildSelect(str,sel)方法赋值到相应的选择框里头去。

最后我们来看看Servlet文件:

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* @author Administrator

*

* TODO To change the template for this generated type comment go to

* Window – Preferences – Java – Code Style – Code Templates

*/

public class SelectCityServlet extends HttpServlet {

public SelectCityServlet() {

super();

}

public void destroy() {

super.destroy();

}

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType(“text/xml”);

response.setHeader(“Cache-Control”, “no-cache”);

String state = request.getParameter(“state”);

StringBuffer sb=new StringBuffer(“state”);

if (“zj”.equals(state)){

sb.append(“cityhangzhou/citycityhuzhou/city”);

} else if(“zs”.equals(state)){

sb.append(“citynanjing/citycityyangzhou/citycitysuzhou/city”);

}

sb.append(“/state”);

PrintWriter out=response.getWriter();

out.write(sb.toString());

out.close();

}

}

这个类也十分简单,首先是从request里取得state参数,然后根据state参数生成相应的XML文件,最后将XML文件输出到PrintWriter对象里。

js 二级联动, 参数不同 谢谢

我今天写了一个二级联动的例子,非常简单,你试试看:

script type=text/javascript

var ss1=[‘名称一’,’名称二’,’名称三’];

var ss2=[[‘规格1.1′,’规格1.2’],

[‘规格2.1′,’规格2.2′,’规格2.3’],

[‘规格3.1′,’规格3.2′,’规格3.3′,’规格3.4’]];

document.write(‘选择名称:select name=select1 onChange=”chg_select2(this.selectedIndex);”‘);

document.write(‘option’,ss1.join(‘option’));

document.write(‘/selectbr’);

document.write(‘选择规格:select name=select2’);

document.write(‘option’,ss2[0].join(‘option’));

document.write(‘/selectbr’);

function chg_select2(n){

for (i=select2.options.length;i=0;i–) select2.options[i]=null;

for (i=0;iss2[n].length;i++) select2.options[select2.options.length]=new Option(ss2[n][i],ss2[n][i]);

}

/script

在线等高手指教怎么在JSP页面做JS二级联动效果

简单的说下原理吧

第一个下拉框变动,可以调用js的onchange时间,然后清空第二个下拉框,走ajax查询第二个下拉框的所有数据,最后拼到页面上。

js实现的二级联动,修改时,从数据库里读的值给城市赋不了值

JS联动AJAX异步操作的数据库,这是为了显示相应的子类别后,选择最大的一类。

,直接读取数据库不等于显示列表。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
OWWTOWWT
上一篇 2024-10-04 00:01
下一篇 2024-10-04 00:01

相关推荐

  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • Python字符转列表指南

    Python是一个极为流行的脚本语言,在数据处理、数据分析、人工智能等领域广泛应用。在很多场景下需要将字符串转换为列表,以便于操作和处理,本篇文章将从多个方面对Python字符转列…

    编程 2025-04-29
  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • Python中不同类型的列表

    Python是一种功能强大的编程语言,其内置数据结构之一为列表。列表可以容纳任意数量的元素,并且可以存储不同类型的数据。 一、列表的基本操作 Python的列表类型支持许多操作,如…

    编程 2025-04-29
  • openeuler安装数据库方案

    本文将介绍在openeuler操作系统中安装数据库的方案,并提供代码示例。 一、安装MariaDB 下面介绍如何在openeuler中安装MariaDB。 1、更新软件源 sudo…

    编程 2025-04-29
  • Python为什么输出空列表

    空列表是Python编程中常见的数据类型,在某些情况下,会出现输出空列表的情况。下面我们就从多个方面为大家详细阐述为什么Python会输出空列表。 一、赋值错误 在Python中,…

    编程 2025-04-29
  • 数据库第三范式会有删除插入异常

    如果没有正确设计数据库,第三范式可能导致删除和插入异常。以下是详细解释: 一、什么是第三范式和范式理论? 范式理论是关系数据库中的一个规范化过程。第三范式是范式理论中的一种常见形式…

    编程 2025-04-29
  • Python定义两个列表的多面探索

    Python是一种强大的编程语言,开放源代码,易于学习和使用。通过Python语言,我们可以定义各种数据类型,如列表(list)。在Python中,列表(list)在处理数据方面起…

    编程 2025-04-29
  • 解析js base64并转成unit

    本文将从多个方面详细介绍js中如何解析base64编码并转成unit格式。 一、base64编码解析 在JavaScript中解析base64编码可以使用atob()函数,它会将b…

    编程 2025-04-29
  • Python编程实现列表元素逆序存放

    本文将从以下几个方面对Python编程实现列表元素逆序存放做详细阐述: 一、实现思路 一般来说,使用Python将列表元素逆序存放可以通过以下几个步骤实现: 1. 定义一个列表 2…

    编程 2025-04-29

发表回复

登录后才能评论