实现jsp页面二级下拉框联动,实时读取数据库数据
2008-05-01 01:59
1166 查看
.Nrg912{display:none;}在一个jsp页面实现二级下拉框联动,实时读取数据库数据,这个方法非常有用,只需要修改很小的地方就可以使用。设计的文件,serch.jsp,main.js,bytetostr.js,
先讲一下main.js,这是javascript,其中注意修改jsp页面名称。
functionfindObject(fName,initValue)...{
varxmlhttp=newActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("POST","searchmx.jsp?findObject="+fName+"&initValue="+initValue,false);//注意修改jsp页面
xmlhttp.send();
document.getElementById(fName).innerHTML=bytes2BSTR(xmlhttp.responsebody);//bytes2BSTR函数在bytetostr.js中
}
Functionbytes2BSTR(vIn)
dimi
strReturn=""
Fori=1ToLenB(vIn)
ThisCharCode=AscB(MidB(vIn,i,1))
IfThisCharCode<&H80Then
strReturn=strReturn&Chr(ThisCharCode)
Else
NextCharCode=AscB(MidB(vIn,i+1,1))
strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode))
i=i+1
EndIf
Next
bytes2BSTR=strReturn
EndFunction
接下来就是serch.jsp页面,只需要修改div中的id为你想要的名字,再将一开始的包更换一下,已经sql语句改下就可以了,有不明白的可以参与讨论
<%@pagecontentType="text/html;charset=gb2312"language="java"import="com.sjth.zdsygl.vo.*,com.sjth.zdsygl.biz.*,java.util.*,com.sjth.zdsygl.jdbc.*,java.sql.ResultSet"%>//导入相应的包
<%
//这部分代码用于执行查询数据库,返回字符串
if(request.getParameter("findObject")!=null)...{
if(request.getParameter("findObject").equals("hy_dm"))...{
DBConnectconn=null;
ResultSetrs=null;
try...{
out.print("<selectname='hy_dm'onchange="javascript:findObject('hymx_dm',this.value)">");
Stringsql="select*fromdm_hygroupbyleft(hy_dm,7)";
conn=newDBConnect();
conn.setPstmt(sql);
rs=conn.executeQuery(sql);
while(rs.next())...{
out.print("<optionvalue='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
out.print("</select>");
}
catch(Exceptione)...{
}
finally...{
try...{
if(rs!=null)
rs.close();
if(conn!=null)
conn.close();
}
catch(Exceptione)...{
e.printStackTrace();
}
}
}
if(request.getParameter("findObject").equals("hymx_dm"))...{
DBConnectconn=null;
ResultSetrs=null;
try...{
out.print("<selectname='hymx_dm'>");
Stringsql=null;
if(request.getParameter("initValue").equals(""))...{
sql="select*fromdm_hy";
}
else...{
sql="select*fromdm_hywherehy_dmlike'"+request.getParameter("initValue")+"%'";
}
conn=newDBConnect();
conn.setPstmt(sql);
rs=conn.executeQuery(sql);
while(rs.next())...{
out.print("<optionvalue='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
out.print("</select>");
}
catch(Exceptione)...{
}
finally...{
try...{
if(rs!=null)
rs.close();
if(conn!=null)
conn.close();
}
catch(Exceptione)...{
e.printStackTrace();
}
}
}
return;
}
%>
<html>
<head>
<linkhref="CSS/table.css"type="text/css"rel="stylesheet">
<scriptlanguage=vbscriptsrc="css/bytetostr.js"></script>
<scriptlanguage=javascriptsrc="css/main.js"></script>//导入两个js文件
</head>
<body>
<div>所属行业:</div>
<divid="hy_dm"></div>//用来显示返回的字符串
<div>所属明细行业:</div>
<divid="hymx_dm"></div>//用来显示返回的字符串
</body>
</html>
<scriptlanguage="javascript">
findObject("hy_dm","");
findObject("hymx_dm","");//这两条是页面执行是调用
</script>欢迎大家讨论
先讲一下main.js,这是javascript,其中注意修改jsp页面名称。
functionfindObject(fName,initValue)...{
varxmlhttp=newActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("POST","searchmx.jsp?findObject="+fName+"&initValue="+initValue,false);//注意修改jsp页面
xmlhttp.send();
document.getElementById(fName).innerHTML=bytes2BSTR(xmlhttp.responsebody);//bytes2BSTR函数在bytetostr.js中
}
Functionbytes2BSTR(vIn)
dimi
strReturn=""
Fori=1ToLenB(vIn)
ThisCharCode=AscB(MidB(vIn,i,1))
IfThisCharCode<&H80Then
strReturn=strReturn&Chr(ThisCharCode)
Else
NextCharCode=AscB(MidB(vIn,i+1,1))
strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode))
i=i+1
EndIf
Next
bytes2BSTR=strReturn
EndFunction
接下来就是serch.jsp页面,只需要修改div中的id为你想要的名字,再将一开始的包更换一下,已经sql语句改下就可以了,有不明白的可以参与讨论
<%@pagecontentType="text/html;charset=gb2312"language="java"import="com.sjth.zdsygl.vo.*,com.sjth.zdsygl.biz.*,java.util.*,com.sjth.zdsygl.jdbc.*,java.sql.ResultSet"%>//导入相应的包
<%
//这部分代码用于执行查询数据库,返回字符串
if(request.getParameter("findObject")!=null)...{
if(request.getParameter("findObject").equals("hy_dm"))...{
DBConnectconn=null;
ResultSetrs=null;
try...{
out.print("<selectname='hy_dm'onchange="javascript:findObject('hymx_dm',this.value)">");
Stringsql="select*fromdm_hygroupbyleft(hy_dm,7)";
conn=newDBConnect();
conn.setPstmt(sql);
rs=conn.executeQuery(sql);
while(rs.next())...{
out.print("<optionvalue='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
out.print("</select>");
}
catch(Exceptione)...{
}
finally...{
try...{
if(rs!=null)
rs.close();
if(conn!=null)
conn.close();
}
catch(Exceptione)...{
e.printStackTrace();
}
}
}
if(request.getParameter("findObject").equals("hymx_dm"))...{
DBConnectconn=null;
ResultSetrs=null;
try...{
out.print("<selectname='hymx_dm'>");
Stringsql=null;
if(request.getParameter("initValue").equals(""))...{
sql="select*fromdm_hy";
}
else...{
sql="select*fromdm_hywherehy_dmlike'"+request.getParameter("initValue")+"%'";
}
conn=newDBConnect();
conn.setPstmt(sql);
rs=conn.executeQuery(sql);
while(rs.next())...{
out.print("<optionvalue='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
out.print("</select>");
}
catch(Exceptione)...{
}
finally...{
try...{
if(rs!=null)
rs.close();
if(conn!=null)
conn.close();
}
catch(Exceptione)...{
e.printStackTrace();
}
}
}
return;
}
%>
<html>
<head>
<linkhref="CSS/table.css"type="text/css"rel="stylesheet">
<scriptlanguage=vbscriptsrc="css/bytetostr.js"></script>
<scriptlanguage=javascriptsrc="css/main.js"></script>//导入两个js文件
</head>
<body>
<div>所属行业:</div>
<divid="hy_dm"></div>//用来显示返回的字符串
<div>所属明细行业:</div>
<divid="hymx_dm"></div>//用来显示返回的字符串
</body>
</html>
<scriptlanguage="javascript">
findObject("hy_dm","");
findObject("hymx_dm","");//这两条是页面执行是调用
</script>欢迎大家讨论
相关文章推荐
- 实现jsp页面二级下拉框联动,实时读取数据库数据
- 在一个jsp页面实现二级下拉框联动,实时读取数据库数据
- 在一个jsp页面实现二级下拉框联动,实时读取数据库数据(用javascript实现)
- 在一个jsp页面实现二级下拉框联动,实时读取数据库数据
- jsp从数据库获取数据填充下拉框实现二级联动菜单的方法
- spinner 从数据库读取数据并实现二级联动。 .
- jquery通过struts2请求,返回json数据,在jsp页面形成二级联动下拉列表
- Java下拉列表联动的实现(从数据库读取数据)
- jsp从数据库获取数据填充下拉框实现二级联动菜单的方法
- 用Ajax实现多级联动下拉列表For JSP(无限级别,JSON传输数据,含全国地区数据库
- 用ajax技术读取数据库内容实现二级联动下拉选择菜单
- struts2实现首次打开默认jsp页面预加载数据库表的读取
- 动态二级下拉框联动(二级数据从数据库中获取)
- Java实现数据库和数据表的二级联动
- 【JSP页面】利用数据库中的表格中的数据实现验证用户名和密码
- 请问如何在Web页面中点击一个button之后,用jsp从数据库中读取数据显示到表格里
- 从数据库读取数据。在页面用表格显示,并实现隔行换色
- jsp+javascript实现动态下拉二级联动(select+option)