Реализуйте связь вторичного раскрывающегося списка на странице jsp и читайте данные базы данных в режиме реального времени. Этот метод очень практичен, и для его использования требуется лишь небольшая модификация. Разработанные файлы serch.jsp, main.js, bytetostr.js.
Давайте сначала поговорим о main.js, который представляет собой JavaScript, и уделим внимание изменению имени страницы jsp.
функция findObject(fName,initValue)...{
вар 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)
Дими
стрReturn = ""
Для i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
Если ЭтотCharCode < &H80 Тогда
стрReturn = strReturn & Chr(ThisCharCode)
Еще
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
я = я + 1
Конец, если
Следующий
bytes2BSTR = стрReturn
Конечная функция
Далее идет страница serch.jsp. Вам нужно только изменить идентификатор в div на нужное имя, а затем изменить исходный пакет. Просто измените оператор 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"%>//Импортируем соответствующий пакет
<%
//Эта часть кода используется для запроса к базе данных и возврата строки
if (request.getParameter("findObject")!=null)...{
if (request.getParameter("findObject").equals("hy_dm"))...{
DBConnect conn = ноль;
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>");
}
улов (Исключение е)...{
}
окончательно...{
пытаться...{
если (rs != ноль)
рс.закрыть();
если (conn != ноль)
конн.закрыть();
}
улов (Исключение е)...{
е.printStackTrace();
}
}
}
if (request.getParameter("findObject").equals("hymx_dm"))...{
DBConnect conn = ноль;
ResultSet rs = null;
пытаться...{
out.print("<select name='hymx_dm' >");
Строка SQL = ноль;
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>");
}
улов (Исключение е)...{
}
окончательно...{
пытаться...{
если (rs != ноль)
рс.закрыть();
если (conn!= ноль)
конн.закрыть();
}
улов (Исключение е)...{
е.printStackTrace();
}
}
}
возвращаться;
}
%>
<html>
<голова>
<link href="css/table.css" type="text/css" rel="таблица стилей">
<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>
<script Language="JavaScript">
findObject("hy_dm","");
findObject("hymx_dm","");//Эти два элемента являются вызовами выполнения страницы
</скрипт>
Приглашаем всех обсудить