JSP 페이지에서 보조 드롭다운 상자의 연결을 구현하고 데이터베이스 데이터를 실시간으로 읽습니다. 이 방법은 매우 실용적이며 사용하기 위해 약간만 수정하면 됩니다. 디자인된 파일인 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 = ""
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 페이지입니다. div에 있는 id를 원하는 이름으로 수정한 후 초기 패키지만 변경하면 됩니다. 이해가 안 되는 부분은 토론에 참여하시면 됩니다. .
<%@ 페이지 contentType="text/html; charset=gb2312" 언어="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;
결과 집합 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>");
}
잡기 (예외 e)...{
}
마지막으로...{
노력하다...{
if (rs != null)
rs.close();
if (conn != null)
conn.close();
}
잡기 (예외 e)...{
e.printStackTrace();
}
}
}
if (request.getParameter("findObject").equals("hymx_dm"))...{
DBConnect 연결 = null;
결과 집합 rs = null;
노력하다...{
out.print("<select name='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>");
}
잡기 (예외 e)...{
}
마지막으로...{
노력하다...{
if (rs != null)
rs.close();
if (conn != null)
conn.close();
}
잡기 (예외 e)...{
e.printStackTrace();
}
}
}
반품;
}
%>
<html>
<머리>
<link href="css/table.css" type="text/css" rel="stylesheet">
<script 언어=vbscript src="css/bytetostr.js"></script>
<script 언어=javascript src="css/main.js"></script>//두 개의 js 파일 가져오기
</head>
<본문>
<div>산업:</div>
<div id="hy_dm"></div> //반환된 문자열을 표시하는 데 사용됩니다.
<div>상세 업종:</div>
<div id="hymx_dm"></div>//반환된 문자열을 표시하는 데 사용됩니다.
</body>
</html>
<스크립트 언어="자바스크립트">
findObject("hy_dm","");
findObject("hymx_dm","");//이 두 항목은 페이지 실행 호출입니다.
</script>
누구나 토론을 환영합니다