Implementieren Sie die Verknüpfung des sekundären Dropdown-Felds in einer JSP-Seite und lesen Sie die Datenbankdaten in Echtzeit. Diese Methode ist sehr praktisch und muss nur geringfügig geändert werden, um sie zu verwenden. Die entworfenen Dateien serch.jsp, main.js, bytetostr.js.
Lassen Sie uns zunächst über main.js sprechen, bei dem es sich um Javascript handelt, und achten Sie auf die Änderung des JSP-Seitennamens.
Funktion findObject(fName,initValue)...{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("POST","searchmx.jsp?findObject="+fName+"&initValue="+initValue,false);//Achten Sie auf die Änderung der JSP-Seite
xmlhttp.send();
document.getElementById(fName).innerHTML=bytes2BSTR(xmlhttp.responsebody); //bytes2BSTR-Funktion ist in bytetostr.js
}
Das zweite ist bytetostr.js, das vbscript ist. Es muss kein Inhalt geändert werden. Seine Hauptfunktion besteht darin, Daten zu lesen und Zeichenfolgen zu konvertieren.
Funktion bytes2BSTR(vIn)
dimi
strReturn = ""
Für i = 1 Zu LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
Wenn ThisCharCode < &H80 Dann
strReturn = strReturn & Chr(ThisCharCode)
Anders
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
ich = ich + 1
Ende wenn
Nächste
bytes2BSTR = strReturn
Funktion beenden
Als nächstes müssen Sie nur die ID im div auf den gewünschten Namen ändern und dann das ursprüngliche Paket ändern. Wenn Sie es nicht verstehen, können Sie sich an der Diskussion beteiligen .
<%@ 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"%>//Importieren Sie das entsprechende Paket
<%
//Dieser Teil des Codes wird verwendet, um die Datenbank abzufragen und eine Zeichenfolge zurückzugeben
if (request.getParameter("findObject")!=null)...{
if (request.getParameter("findObject").equals("hy_dm"))...{
DBConnect conn = null;
ResultSet rs = null;
versuchen...{
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);
while(rs.next())...{
out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
out.print("</select>");
}
Catch (Ausnahme e)...{
}
Endlich...{
versuchen...{
if (rs != null)
rs.close();
if (conn != null)
conn.close();
}
Catch (Ausnahme e)...{
e.printStackTrace();
}
}
}
if (request.getParameter("findObject").equals("hymx_dm"))...{
DBConnect conn = null;
ResultSet rs = null;
versuchen...{
out.print("<select name='hymx_dm' >");
String sql = null;
if (request.getParameter("initValue").equals(""))...{
sql = "select * from dm_hy";
}
anders...{
sql = "select * from dm_hy where hy_dm like '"+request.getParameter("initValue")+"%'";
}
conn = new 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 (Ausnahme e)...{
}
Endlich...{
versuchen...{
if (rs != null)
rs.close();
if (conn != null)
conn.close();
}
Catch (Ausnahme e)...{
e.printStackTrace();
}
}
}
zurückkehren;
}
%>
<html>
<Kopf>
<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>//Zwei js-Dateien importieren
</head>
<Körper>
<div>Branche:</div>
<div id="hy_dm"></div> //Wird zur Anzeige der zurückgegebenen Zeichenfolge verwendet
<div>Detaillierte Branche:</div>
<div id="hymx_dm"></div>//Wird verwendet, um die zurückgegebene Zeichenfolge anzuzeigen
</body>
</html>
<script language="javascript">
findObject("hy_dm","");
findObject("hymx_dm","");//Diese beiden Elemente sind Seitenausführungsaufrufe
</script>
Jeder ist willkommen, mitzudiskutieren