Menerapkan tautan drop-down box sekunder di halaman jsp dan membaca data database secara real time. Cara ini sangat praktis dan hanya perlu dimodifikasi sedikit saja untuk menggunakannya. File yang dirancang, serch.jsp, main.js, bytetostr.js,
mari kita bahas main.js terlebih dahulu, yaitu javascript, dan perhatikan modifikasi nama halaman jsp.
fungsi findObject(fName,initValue)...{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("POST","searchmx.jsp?findObject="+fName+"&initValue="+initValue,false);//Perhatikan untuk memodifikasi halaman jsp
xmlhttp.kirim();
document.getElementById(fName).innerHTML=bytes2BSTR(xmlhttp.responsebody); //fungsi bytes2BSTR ada di bytetostr.js
}
Yang kedua adalah bytetostr.js, yaitu vbscript. Ini tidak perlu mengubah konten apa pun.
Fungsi byte2BSTR(vIn)
redup
strKembali = ""
Untuk i = 1 Ke LenB(vIn)
KodeKar ini = AscB(MidB(vIn,i,1))
Jika ThisCharCode < &H80 Lalu
strReturn = strReturn & Chr(KodeCharIni)
Kalau tidak
KodeChar Berikutnya = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
saya = saya + 1
Akhiri Jika
Berikutnya
bytes2BSTR = strKembali
Fungsi Akhir
Berikutnya adalah halaman serch.jsp, Anda hanya perlu memodifikasi id di div menjadi nama yang Anda inginkan, lalu mengubah paket awal, cukup ubah pernyataan sqlnya .
<%@ halaman contentType="teks/html; charset=gb2312" bahasa="java" import="com.sjth.zdsygl.vo.*,com.sjth.zdsygl.biz.*,java.util.*,com .sjth.zdsygl.jdbc.*,java.sql.ResultSet"%>//Impor paket yang sesuai
<%
//Bagian kode ini digunakan untuk menanyakan database dan mengembalikan string
if (request.getParameter("findObject")!=null)...{
if (request.getParameter("findObject").equals("hy_dm"))...{
Sambungan DBConnect = null;
HasilSet rs = null;
mencoba...{
out.print("<pilih nama='hy_dm' onchange="javascript:findObject('hymx_dm',this.value)">");
String sql = "pilih * dari grup dm_hy di sebelah kiri(hy_dm,7)";
samb = DBConnect baru();
samb.setPstmt(sql);
rs = samb.executeQuery(sql);
while(rs.next())...{
out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
keluar.print("</select>");
}
menangkap (Pengecualian e)...{
}
Akhirnya...{
mencoba...{
jika (rs != nol)
rs.close();
jika (sambungan != nol)
samb.close();
}
menangkap (Pengecualian e)...{
e.printStackTrace();
}
}
}
if (request.getParameter("findObject").equals("hymx_dm"))...{
Sambungan DBConnect = null;
HasilSet rs = null;
mencoba...{
out.print("<pilih nama='hymx_dm' >");
String sql = nol;
if (request.getParameter("initValue").sama dengan(""))...{
sql = "pilih * dari dm_hy";
}
kalau tidak...{
sql = "pilih * dari dm_hy di mana hy_dm suka '"+request.getParameter("initValue")+"%'";
}
samb = DBConnect baru();
samb.setPstmt(sql);
rs = samb.executeQuery(sql);
while(rs.next())...{
out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
keluar.print("</select>");
}
menangkap (Pengecualian e)...{
}
Akhirnya...{
mencoba...{
jika (rs != nol)
rs.close();
jika (sambungan != nol)
samb.close();
}
menangkap (Pengecualian e)...{
e.printStackTrace();
}
}
}
kembali;
}
%>
<html>
<kepala>
<link href="css/table.css" type="text/css" rel="stylesheet">
<skrip bahasa=vbscript src="css/bytetostr.js"></skrip>
<script Language=javascript src="css/main.js"></script>//Impor dua file js
</kepala>
<tubuh>
<div>Industri:</div>
<div id="hy_dm"></div> //Digunakan untuk menampilkan string yang dikembalikan
<div>Industri terperinci:</div>
<div id="hymx_dm"></div>//Digunakan untuk menampilkan string yang dikembalikan
</tubuh>
</html>
<skrip bahasa="javascript">
findObject("hy_dm","");
findObject("hymx_dm","");//Kedua item ini adalah panggilan eksekusi halaman
</skrip>
Semua orang dipersilakan untuk berdiskusi