JSP ページに 2 番目のドロップダウン ボックスのリンクを実装し、データベース データをリアルタイムで読み取るこの方法は非常に実用的であり、使用するには少し変更するだけで済みます。設計されたファイル、serch.jsp、main.js、bytetostr.js。
まず、javascript である main.js について説明し、JSP ページ名の変更に注意してください。
関数 findObject(fName,initValue)...{
var xmlhttp = new ActiveXObject("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 にあります
つ
目は、vbscript である bytetostr.js です。その主な機能は、データの読み取りと文字列の変換です。
関数 bytes2BSTR(vIn)
ディミ
strReturn = ""
For i = 1 から LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 then
strReturn = strReturn & Chr(ThisCharCode)
それ以外
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
終了の場合
次
bytes2BSTR = strReturn
終了機能
次は serch.jsp ページです。div 内の ID を必要な名前に変更するだけです。理解できない場合は、SQL ステートメントを変更するだけです。 。
<%@ 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"%>//対応するパッケージをインポートします
<%
// コードのこの部分はデータベースにクエリを実行し、文字列を返すために使用されます。
if (request.getParameter("findObject")!=null)...{
if (request.getParameter("findObject").equals("hy_dm"))...{
DBConnect conn = null;
結果セット rs = null;
試す...{
out.print("<select name='hy_dm' onchange="javascript:findObject('hymx_dm',this.value)">");
String sql = "select * from dm_hy group by left(hy_dm,7)";
conn = 新しい DBConnect();
conn.setPstmt(sql);
rs = conn.executeQuery(sql);
while(rs.next())...{
out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
out.print("</select>");
}
catch (例外 e)...{
}
ついに...{
試す...{
if (rs != null)
rs.close();
if (conn != null)
conn.close();
}
catch (例外 e)...{
e.printStackTrace();
}
}
}
if (request.getParameter("findObject").equals("hymx_dm"))...{
DBConnect conn = null;
結果セット rs = null;
試す...{
out.print("<select name='hymx_dm' >");
文字列 SQL = null;
if (request.getParameter("initValue").equals(""))...{
sql = "select * from dm_hy";
}
それ以外...{
sql = "select * from dm_hy where hy_dm like '"+request.getParameter("initValue")+"%'";
}
conn = 新しい DBConnect();
conn.setPstmt(sql);
rs = conn.executeQuery(sql);
while(rs.next())...{
out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
out.print("</select>");
}
catch (例外 e)...{
}
ついに...{
試す...{
if (rs != null)
rs.close();
if (conn != null)
conn.close();
}
catch (例外 e)...{
e.printStackTrace();
}
}
}
戻る;
}
%>
<html>
<頭>
<link href="css/table.css" type="text/css" rel="stylesheet">
<script language=vbscript src="css/bytetostr.js"></script>
<script language=javascript src="css/main.js"></script>//2 つの js ファイルをインポートします
</head>
<本文>
<div>業界:</div>
<div id="hy_dm"></div> //返された文字列を表示するために使用されます
<div>詳細な業界:</div>
<div id="hymx_dm"></div>//返された文字列を表示するために使用されます
</body>
</html>
<スクリプト言語="javascript">
findObject("hy_dm","");
findObject("hymx_dm","");//これら 2 つの項目はページ実行呼び出しです
</script>
誰でも議論することを歓迎します