Implemente a ligação da caixa suspensa secundária em uma página jsp e leia os dados do banco de dados em tempo real. Este método é muito prático e só precisa ser modificado um pouco para utilizá-lo. Os arquivos projetados, serch.jsp, main.js, bytetostr.js,
vamos falar primeiro sobre main.js, que é javascript, e preste atenção na modificação do nome da página jsp.
função encontrarObjeto(fNome,InitValue)...{
var xmlhttp = novo ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("POST","searchmx.jsp?findObject="+fName+"&initValue="+initValue,false);//Preste atenção ao modificar a página jsp
xmlhttp.send();
document.getElementById(fName).innerHTML=bytes2BSTR(xmlhttp.responsebody //a função bytes2BSTR está em bytetostr.js);
}
O segundo é bytetostr.js, que é vbscript. Não precisa modificar nenhum conteúdo. Sua principal função é ler dados e converter strings.
Função bytes2BSTR(vIn)
dimi
strReturn = ""
Para i = 1 para LenB(vIn)
EsteCharCode = AscB(MidB(vIn,i,1))
Se ThisCharCode <&H80 Então
strReturn = strReturn & Chr(ThisCharCode)
Outro
PróximoCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
eu = eu + 1
Terminar se
Próximo
bytes2BSTR = strReturn
Função final
A seguir está a página serch.jsp. Você só precisa modificar o id no div para o nome desejado e, em seguida, alterar o pacote inicial. Se não entender, você pode participar da discussão. .
<%@ page contentType="text/html; charset=gb2312" idioma="java" import="com.sjth.zdsygl.vo.*,com.sjth.zdsygl.biz.*,java.util.*,com .sjth.zdsygl.jdbc.*,java.sql.ResultSet"%>//Importa o pacote correspondente
<%
//Esta parte do código é usada para consultar o banco de dados e retornar uma string
if (request.getParameter("findObject")!=null)...{
if (request.getParameter("findObject").equals("hy_dm"))...{
conexão DBConnect = null;
Conjunto de resultados rs = null;
tentar...{
out.print("<select name='hy_dm' onchange="javascript:findObject('hymx_dm',this.value)">");
String sql = "selecione * do grupo dm_hy por left(hy_dm,7)";
conexão = new DBConnect();
conn.setPstmt(sql);
rs = conn.executeQuery(sql);
enquanto(rs.next())...{
out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
out.print("</select>");
}
pegar (Exceção e)...{
}
finalmente...{
tentar...{
se (rs! = nulo)
rs.close();
if (conn! = nulo)
conn.close();
}
pegar (Exceção e)...{
e.printStackTrace();
}
}
}
if (request.getParameter("findObject").equals("hymx_dm"))...{
conexão DBConnect = null;
Conjunto de resultados rs = null;
tentar...{
out.print("<selecione nome='hymx_dm' >");
Stringsql=nulo;
if (request.getParameter("initValue").equals(""))...{
sql = "selecione * de dm_hy";
}
outro...{
sql = "selecione * de dm_hy onde hy_dm gosta '"+request.getParameter("initValue")+"%'";
}
conexão = new DBConnect();
conn.setPstmt(sql);
rs = conn.executeQuery(sql);
enquanto(rs.next())...{
out.print("<option value='"+rs.getString("hy_dm")+"'>"+rs.getString("hy_mc")+"</option>");
}
out.print("</select>");
}
pegar (Exceção e)...{
}
finalmente...{
tentar...{
se (rs! = nulo)
rs.close();
if (conn! = nulo)
conn.close();
}
pegar (Exceção e)...{
e.printStackTrace();
}
}
}
retornar;
}
%>
<html>
<cabeça>
<link href="css/table.css" type="text/css" rel="stylesheet">
<script idioma=vbscript src="css/bytetostr.js"></script>
<script language=javascript src="css/main.js"></script>//Importar dois arquivos js
</head>
<corpo>
<div>Indústria:</div>
<div id="hy_dm"></div> //Usado para exibir a string retornada
<div>Setor detalhado:</div>
<div id="hymx_dm"></div>//Usado para exibir a string retornada
</body>
</html>
<linguagem script="javascript">
findObject("hy_dm","");
findObject("hymx_dm","");//Esses dois itens são chamadas de execução de página
</script>
Todos são bem-vindos para discutir