قم بتنفيذ ربط المربع المنسدل الثانوي في صفحة jsp وقراءة بيانات قاعدة البيانات في الوقت الفعلي. هذه الطريقة عملية للغاية ولا تحتاج إلا إلى تعديل بسيط لاستخدامها. الملفات المصممة، serch.jsp، main.js، bytetostr.js،
لنتحدث أولاً عن main.js وهو javascript، وننتبه إلى تعديل اسم صفحة 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
}
والثاني هو bytetostr.js، وهو vbscript، ولا يحتاج إلى تعديل أي محتوى، وتتمثل وظيفته الرئيسية في قراءة البيانات وتحويل السلاسل.
البايتات الدالة 2BSTR(vIn)
ديمي
strReturn = ""
لأني = 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، ما عليك سوى تعديل المعرف الموجود في القسم إلى الاسم الذي تريده، ثم تغيير الحزمة الأولية. فقط قم بتغيير عبارة 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"%>// استيراد الحزمة المقابلة
<%
// يُستخدم هذا الجزء من الكود للاستعلام عن قاعدة البيانات وإرجاع سلسلة
إذا (request.getParameter("findObject")!=null)...{
إذا (request.getParameter("findObject").equals("hy_dm"))...{
DBConnect conn = null;
ResultSet 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 = new 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>");
}
قبض (استثناء ه)...{
}
أخيراً...{
يحاول...{
إذا (RS ! = فارغة)
rs. Close();
إذا (كون ! = فارغة)
conn.Close();
}
قبض (استثناء ه)...{
printStackTrace();
}
}
}
إذا (request.getParameter("findObject").equals("hymx_dm"))...{
DBConnect conn = null;
ResultSet rs = null;
يحاول...{
out.print("<select name='hymx_dm' >");
String sql = null;
إذا (request.getParameter("initValue").equals(""))...{
sql = "اختر * من dm_hy";
}
آخر...{
sql = "select * from dm_hy حيث hy_dm like '"+request.getParameter("initValue")+"%'";
}
conn = new 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>");
}
قبض (استثناء ه)...{
}
أخيراً...{
يحاول...{
إذا (RS ! = فارغة)
rs. Close();
إذا (كون ! = فارغة)
conn.Close();
}
قبض (استثناء ه)...{
printStackTrace();
}
}
}
يعود؛
}
%>
<أتش تي أم أل>
<الرأس>
<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"،"");// هذين العنصرين عبارة عن استدعاءات تنفيذ الصفحة
</script>
الجميع مدعوون للمناقشة