硅谷论坛's Archiver

蓝冰 发表于 2007-5-8 16:17

实现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>&nbsp;function findObject(fName,initValue)...{<BR>&nbsp;&nbsp; var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");<BR>&nbsp;&nbsp; xmlhttp.open("POST","searchmx.jsp?findObject="+fName+"&amp;initValue="+initValue,false);//注意修改jsp页面<BR>&nbsp;&nbsp; xmlhttp.send();<BR>&nbsp;&nbsp; document.getElementById(fName).innerHTML=bytes2BSTR(xmlhttp.responsebody); //bytes2BSTR函数在bytetostr.js中<BR>&nbsp;}</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ffffff" color=#ff0000>&nbsp;其次为bytetostr.js,这是vbscript,这个不需要修改任何内容,他的主要功能就是读取数据转换字符串用的。</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #ffffff" color=#ff0000>&nbsp;Function bytes2BSTR(vIn)<BR>&nbsp; dim i<BR>&nbsp; strReturn = ""<BR>&nbsp; For i = 1 To LenB(vIn)<BR>&nbsp; ThisCharCode = AscB(MidB(vIn,i,1))<BR>&nbsp; If ThisCharCode &lt; &amp;H80 Then<BR>&nbsp; strReturn = strReturn &amp; Chr(ThisCharCode)<BR>&nbsp; Else<BR>&nbsp; NextCharCode = AscB(MidB(vIn,i+1,1))<BR>&nbsp; strReturn = strReturn &amp; Chr(CLng(ThisCharCode) * &amp;H100 + CInt(NextCharCode))<BR>&nbsp; i = i + 1<BR>&nbsp; End If<BR>&nbsp; Next<BR>&nbsp; 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>&lt;%@ 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"%&gt;//导入相应的包<BR>&lt;%<BR>//这部分代码用于执行查询数据库,返回字符串<BR>&nbsp; if (request.getParameter("findObject")!=null)...{<BR>&nbsp;&nbsp;&nbsp; if (request.getParameter("findObject").equals("hy_dm"))...{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DBConnect conn = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResultSet rs = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try...{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print("&lt;select name='hy_dm' onchange="javascript:findObject('hymx_dm',this.value)"&gt;"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sql = "select * from dm_hy group by left(hy_dm,7)";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn = new DBConnect();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.setPstmt(sql);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs = conn.executeQuery(sql);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(rs.next())...{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print("&lt;option value='"+rs.getString("hy_dm")+"'&gt;"+rs.getString("hy_mc")+"&lt;/option&gt;"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print("&lt;/select&gt;"); <BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e)...{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; finally...{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try...{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (rs != null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (conn != null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e)...{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; if (request.getParameter("findObject").equals("hymx_dm"))...{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DBConnect conn = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResultSet rs = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try...{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print("&lt;select name='hymx_dm' &gt;"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sql = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (request.getParameter("initValue").equals(""))...{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sql = "select * from dm_hy";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else...{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sql = "select * from dm_hy where hy_dm like '"+request.getParameter("initValue")+"%'";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn = new DBConnect();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.setPstmt(sql);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs = conn.executeQuery(sql);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(rs.next())...{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print("&lt;option value='"+rs.getString("hy_dm")+"'&gt;"+rs.getString("hy_mc")+"&lt;/option&gt;"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print("&lt;/select&gt;"); <BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e)...{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; finally...{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try...{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (rs != null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (conn != null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e)...{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; return;<BR>&nbsp;}<BR>%&gt;<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;link href="CSS/table.css" type="text/css" rel="stylesheet"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;script language=vbscript src="css/bytetostr.js"&gt;&lt;/script&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;script language=javascript src="css/main.js"&gt;&lt;/script&gt;//导入两个js文件<BR>&lt;/head&gt;<BR>&lt;body&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;所属行业:&lt;/div&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div id="hy_dm"&gt;&lt;/div&gt; //用来显示返回的字符串<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div &gt;所属明细行业:&lt;/div&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div id="hymx_dm"&gt;&lt;/div&gt;//用来显示返回的字符串<BR>&lt;/body&gt;<BR>&lt;/html&gt;<BR>&lt;script language="javascript"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; findObject("hy_dm","");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; findObject("hymx_dm","");//这两条是页面执行是调用<BR>&lt;/script&gt;</FONT></P></TD></TR></TBODY></TABLE></P>
<P>欢迎大家讨论</P>

itjingying 发表于 2008-7-6 09:33

以后会用到,收藏先:victory: :victory: :victory:

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.