ใช้การเชื่อมโยงกล่องดรอปดาวน์รองในหน้า jsp และอ่านข้อมูลฐานข้อมูลแบบเรียลไทม์ วิธีการนี้ใช้งานได้จริงและจำเป็นต้องแก้ไขเพียงเล็กน้อยเท่านั้นจึงจะใช้งานได้ ไฟล์ที่ออกแบบ serch.jsp, main.js, bytetostr.js
เรามาพูดถึง main.js ก่อน ซึ่งก็คือจาวาสคริปต์ และใส่ใจกับการแก้ไขชื่อหน้า jsp
ฟังก์ชั่น findObject(fName,initValue)...{
var xmlhttp = ใหม่ 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
}
ประการที่สองคือ bytetostr.js ซึ่งเป็น vbscript ซึ่งไม่จำเป็นต้องแก้ไขเนื้อหาใดๆ
ฟังก์ชั่น bytes2BSTR(vIn)
ดิมิ
strReturn = ""
สำหรับ i = 1 ถึง LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
ถ้า ThisCharCode < &H80 แล้ว
strReturn = strReturn & Chr(ThisCharCode)
อื่น
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
ฉัน = ฉัน + 1
สิ้นสุดถ้า
ต่อไป
bytes2BSTR = strReturn
ฟังก์ชันสิ้นสุด
ถัดไปคือหน้า serch.jsp คุณเพียงแค่ต้องแก้ไข id ใน div เป็นชื่อที่คุณต้องการ จากนั้นจึงเปลี่ยนแพ็คเกจเริ่มต้น เพียงเปลี่ยนคำสั่ง sql หากคุณไม่เข้าใจ ก็สามารถเข้าร่วมการสนทนาได้ .
<%@ หน้า 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 เชื่อมต่อ = null;
ResultSet rs = null;
พยายาม...{
out.print("<select name='hy_dm' onchange="javascript:findObject('hymx_dm',this.value)">");
String sql = "เลือก * จากกลุ่ม dm_hy ไปทางซ้าย (hy_dm,7)";
conn = DBConnect ใหม่();
conn.setPstmt(sql);
rs = conn.executeQuery(sql);
ในขณะที่(rs.next())...{
out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
-
out.print("</select>");
-
catch (ข้อยกเว้น e)...{
-
ในที่สุด...{
พยายาม...{
ถ้า (อาร์เอส != null)
rs.ปิด();
ถ้า (conn != null)
conn.ปิด();
-
catch (ข้อยกเว้น e)...{
e.printStackTrace();
-
-
-
if (request.getParameter("findObject").equals("hymx_dm"))...{
DBConnect เชื่อมต่อ = null;
ResultSet rs = null;
พยายาม...{
out.print("<เลือกชื่อ='hymx_dm' >");
สตริง sql = null;
if (request.getParameter("initValue").equals(""))...{
sql = "เลือก * จาก dm_hy";
-
อื่น...{
sql = "เลือก * จาก dm_hy โดยที่ hy_dm เช่น '"+request.getParameter("initValue")+"%'";
-
conn = DBConnect ใหม่();
conn.setPstmt(sql);
rs = conn.executeQuery(sql);
ในขณะที่(rs.next())...{
out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
-
out.print("</select>");
-
catch (ข้อยกเว้น e)...{
-
ในที่สุด...{
พยายาม...{
ถ้า (อาร์เอส != null)
rs.ปิด();
ถ้า (conn != null)
conn.ปิด();
-
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>//นำเข้าไฟล์ js สองไฟล์
</หัว>
<ร่างกาย>
<div>อุตสาหกรรม:</div>
<div id="hy_dm"></div> //ใช้เพื่อแสดงสตริงที่ส่งคืน
<div>อุตสาหกรรมโดยละเอียด:</div>
<div id="hymx_dm"></div>//ใช้เพื่อแสดงสตริงที่ส่งคืน
</ร่างกาย>
</html>
<ภาษาสคริปต์ = "จาวาสคริปต์">
findObject("hy_dm","");
findObject("hymx_dm","");// สองรายการนี้เป็นการเรียกการดำเนินการเพจ
</สคริปต์>
ทุกคนยินดีที่จะหารือเกี่ยวกับ