日期:2014-05-18  浏览次数:20726 次

jsp 纯链接数据库实现下拉框联动
看了论坛里大多数都是select   *   from   table
然后再用javascirpt做数组实现的
现在我要操作的表数据非常大,几十W条

所有想充分利用强劲的服务器,只单纯的实现2个下拉框的2级联动问题
思路大致在单页面内,第1个下拉框的onchange后,提交数据库
可以刷新页面,这个无所谓,然后把相对应的值取到第2个下拉框里

貌似现在的问题是,onchange里的东西我不会写,还有如何提交等问题

麻烦各位大大了。。。。。
PS:暂时不考虑AJAX,只用jsp语句实现,可以配合JS

------解决方案--------------------
这样的问题 无非就是两种方法 要不就把记录都取出来 放到数组变量 要不就是根据条件 时时地去查询 按照你的问题得知 第一种方法是不可取的
只有用第二种了
我的建议你还是用 Ajax 比较方便一点 Js 是能够实现 但是你想想 Sql 语句你怎么去拼装呢/ 在Js 里吗? 那样做不太好 , 数据库安全方面就出现漏洞了
其实 Ajax 并不是很难 应用到你这个问题上 那是非常容易的
Js 实现你的问题 有点麻烦
你自己多考虑一下
-------------------------------------------
你要是觉得 Ajax 你不想用
我的建议是 你让下拉框变化的时候去提交一个表单 但是目的页面还是本页,你用 JavaBean 去和数据库打交道 然后把返回的记录 放到 Request里 , 然后再在 Js里 根据 Request 来改变下拉框的内容
------解决方案--------------------
<%@ page contentType= "text/html;charset=gb2312 "%>
<jsp:directive.page import= "duocai.Manger.DatabaseConnect "/>
<%@ page import= "java.sql.* " %>
<%@ page import= "java.util.* "%>
<%@ page import= "java.text.* "%>
<%@ page import= "java.io.* "%>
<jsp:useBean id= "popedom " scope= "page " class= "duocai.Manger.DatabaseConnect "> </jsp:useBean>
<html>
<body>
<% DatabaseConnect conn = new DatabaseConnect();
conn.Connect();
//省份选择1
String select_provinceCity = "select * from provinceCity ";
String select_province = "select * from province ";
ResultSet rst = conn.exQuery(select_provinceCity);
ResultSet rst1 = conn.exQuery(select_province);

//省份选择2
ResultSet rst2 = conn.exQuery(select_provinceCity);
ResultSet rst3 = conn.exQuery(select_province);

//专业选择
String select_specialityFirst = "select * from specialityFirst ";
String select_specialitySecond = "select * from specialitySecond ";
ResultSet rst4 = conn.exQuery(select_specialitySecond);
ResultSet rst5 = conn.exQuery(select_specialityFirst);

//省份选择3
ResultSet rst6 = conn.exQuery(select_provinceCity);
ResultSet rst7 = conn.exQuery(select_province);

%>

<script language= "JavaScript ">
<!--
var subcat = new Array();
var subcat1 = new Array();
var subcat2 = new Array();
var subcat3 = new Array();
<% int pck =0;%>
<% int pck1 =0;%>
<% int pck2 =0;%>
<% int pck3 =0;%>
<%while(rst.next()==true){
%>
subcat[ <%=pck%> ] = new Array( ' <%=rst.getString( "provinceCity ") %> ', ' <%=rst.getString( "city ") %> ')
<%pck++;
} %>
<%while(rst2.next()==true){
%>
subcat1[ <%=pck1%> ] = new Array( ' <%=rst2.getString( "provinceCity ") %> ', ' <%=rst2.getString( "city ") %> ')
<%pck1++;
} %>

<%while(rst4.next()==true){
%>
subcat2[ <%=pck2%> ] = new Array( ' <%=rst4.getString( "specialityFirst ") %> ', ' <%=rst4.getString( "specialitySecond ") %> ')
<%pck2++;
} %>

<%while(rst6.next()==true){
%>
subcat3[ <%=pck3%> ] = new Array( ' <%=rst6.getSt