实现jsp页面二级下拉框联动,实时读取数据库数据
<P>在一个jsp页面实现二级下拉框联动,实时读取数据库数据,这个方法非常有用,只需要修改很小的地方就可以使用。设计的文件,serch.jsp,main.js,bytetostr.js,</P><P>先讲一下main.js,这是javascript,其中注意修改jsp页面名称。</P>
<P>
<TABLE style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; WIDTH: 658px; BORDER-BOTTOM: #cccccc 1px dotted; HEIGHT: 401px" cellSpacing=0 cellPadding=6 width=658 align=center border=0>
<TBODY>
<TR>
<TD style="WORD-WRAP: break-word" bgColor=#fdfddf>
<P><FONT color=#ff0000>以下为引用的内容:</FONT><BR><FONT style="BACKGROUND-COLOR: #ffffff" color=#ff0000> function findObject(fName,initValue)...{<BR> var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");<BR> xmlhttp.open("POST","searchmx.jsp?findObject="+fName+"&initValue="+initValue,false);//注意修改jsp页面<BR> xmlhttp.send();<BR> document.getElementById(fName).innerHTML=bytes2BSTR(xmlhttp.responsebody); //bytes2BSTR函数在bytetostr.js中<BR> }</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ffffff" color=#ff0000> 其次为bytetostr.js,这是vbscript,这个不需要修改任何内容,他的主要功能就是读取数据转换字符串用的。</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ffffff" color=#ff0000> Function bytes2BSTR(vIn)<BR> dim i<BR> strReturn = ""<BR> For i = 1 To LenB(vIn)<BR> ThisCharCode = AscB(MidB(vIn,i,1))<BR> If ThisCharCode < &H80 Then<BR> strReturn = strReturn & Chr(ThisCharCode)<BR> Else<BR> NextCharCode = AscB(MidB(vIn,i+1,1))<BR> strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))<BR> i = i + 1<BR> End If<BR> Next<BR> bytes2BSTR = strReturn<BR>End Function</FONT></P></TD></TR></TBODY></TABLE></P>
<P>接下来就是serch.jsp页面,只需要修改div中的id为你想要的名字,再将一开始的包更换一下,已经sql语句改下就可以了,有不明白的可以参与讨论</P>
<P>
<TABLE style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; WIDTH: 648px; BORDER-BOTTOM: #cccccc 1px dotted; HEIGHT: 1371px" cellSpacing=0 cellPadding=6 width=648 align=center border=0>
<TBODY>
<TR>
<TD style="WORD-WRAP: break-word" bgColor=#fdfddf>
<P><FONT color=#ff0000>以下为引用的内容:</FONT><BR><FONT style="BACKGROUND-COLOR: #ffffff" color=#ff0000><BR><%@ page contentType="text/html; charset=gb2312" language="java" import="com.sjth.zdsygl.vo.*,com.sjth.zdsygl.biz.*,java.util.*,com.sjth.zdsygl.jdbc.*,java.sql.ResultSet"%>//导入相应的包<BR><%<BR>//这部分代码用于执行查询数据库,返回字符串<BR> if (request.getParameter("findObject")!=null)...{<BR> if (request.getParameter("findObject").equals("hy_dm"))...{<BR> DBConnect conn = null;<BR> ResultSet rs = null;<BR> try...{ <BR> out.print("<select name='hy_dm' onchange="javascript:findObject('hymx_dm',this.value)">"); <BR> String sql = "select * from dm_hy group by left(hy_dm,7)";<BR> conn = new DBConnect();<BR> conn.setPstmt(sql);<BR> rs = conn.executeQuery(sql);<BR> while(rs.next())...{<BR> out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>"); <BR> } <BR> out.print("</select>"); <BR> }<BR> catch (Exception e)...{ <BR> }<BR> finally...{<BR> try...{<BR> if (rs != null)<BR> rs.close();<BR> if (conn != null)<BR> conn.close();<BR> }<BR> catch (Exception e)...{<BR> e.printStackTrace();<BR> }<BR> }<BR> }<BR> if (request.getParameter("findObject").equals("hymx_dm"))...{<BR> DBConnect conn = null;<BR> ResultSet rs = null;<BR> try...{ <BR> out.print("<select name='hymx_dm' >"); <BR> String sql = null;<BR> if (request.getParameter("initValue").equals(""))...{<BR> sql = "select * from dm_hy";<BR> }<BR> else...{<BR> sql = "select * from dm_hy where hy_dm like '"+request.getParameter("initValue")+"%'";<BR> }<BR> conn = new DBConnect();<BR> conn.setPstmt(sql);<BR> rs = conn.executeQuery(sql);<BR> while(rs.next())...{<BR> out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>"); <BR> } <BR> out.print("</select>"); <BR> }<BR> catch (Exception e)...{ <BR> }<BR> finally...{<BR> try...{<BR> if (rs != null)<BR> rs.close();<BR> if (conn != null)<BR> conn.close();<BR> }<BR> catch (Exception e)...{<BR> e.printStackTrace();<BR> }<BR> }<BR> }<BR> return;<BR> }<BR>%><BR><html><BR><head><BR> <link href="CSS/table.css" type="text/css" rel="stylesheet"><BR> <script language=vbscript src="css/bytetostr.js"></script><BR> <script language=javascript src="css/main.js"></script>//导入两个js文件<BR></head><BR><body> <BR> <div>所属行业:</div> <BR> <div id="hy_dm"></div> //用来显示返回的字符串<BR> <div >所属明细行业:</div> <BR> <div id="hymx_dm"></div>//用来显示返回的字符串<BR></body><BR></html><BR><script language="javascript"><BR> findObject("hy_dm","");<BR> findObject("hymx_dm","");//这两条是页面执行是调用<BR></script></FONT></P></TD></TR></TBODY></TABLE></P>
<P>欢迎大家讨论</P> 以后会用到,收藏先:victory: :victory: :victory:
页:
[1]
