本文目录一览:
- 1、二级联动菜单,数据是从数据库的一个表中查询出来的,js显示之后在显示下一条的时候如何清空之前显示的。
- 2、jsp二级联动js参数回填表单的问题
- 3、js 二级联动, 参数不同 谢谢
- 4、在线等高手指教怎么在JSP页面做JS二级联动效果
- 5、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异步操作的数据库,这是为了显示相应的子类别后,选择最大的一类。
,直接读取数据库不等于显示列表。