JSP页面内要做SELECT的联动,有三个SELECT,要求从数据库中读取信息到SELECT的OPTION内

主要就是想知道怎么将数据库中的信息读入到SELECT中,不能在JSP页面中写JAVA代码,最好用SSH框架的,不是的也可以,只想知道个方法,最好能附代码,高分求助,好的加分
主要是我不太懂ajax啊,能说的详细点不,最好能给个小例子,可以用的话再加50分。不能在JSP页面加<%%>代码的

我期末写了一个作业(2级联动),这个地方我们还没学到,我就是按自己想法写了一个,反正肯定是可以用的,你看一下吧
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="com.zk.voo.Property_type"%>

<html>
<head>
<%
String []type=(String [])request.getAttribute("big_type");
String [][]model=(String [][])request.getAttribute("little_type");
%>
<script type="text/javascript">
function select1(){

var type=document.getElementById("type");

var array=new Array(<%=type.length%>);

<%
for(int i=0;i<type.length;i++){
%>
array[<%=i%>]="<%=type[i]%>";
<%
}
%>

for(var i=0;i<array.length;i++){
var op =new Option(array[i],array[i]);
type.options.add(op);
}

var year=document.getElementById("year");
for(var i=1980;i<=2020;i++){
var op=new Option(i,i);
year.options.add(op);
}

var month=document.getElementById("month");
for(var i=1;i<13;i++){
var op=new Option(i,i);
month.options.add(op);
}

var date=document.getElementById("date");
for(var i=1;i<32;i++){
var op=new Option(i,i);
date.options.add(op);
}
}
function select2(x){

var index=x-1;
var little_type=document.getElementById("little_type");
little_type.options.length=0;
var array2=new Array(<%=model.length%>);

for(var i=0;i<array2.length;i++){
<%
for(int i=0;i<model.length;i++){
%>
array2[<%=i%>]=new Array(<%=model[i].length%>);

<%
for(int j=0;j<model[i].length;j++){
%>
array2[<%=i%>][<%=j%>]="<%=model[i][j]%>";
<%

}
}
%>
}
var top=new Option("---请选择---","");
little_type.options.add(top);
for(var i=0;i<array2[index].length;i++){
var op=new Option(array2[index][i],array2[index][i]);
little_type.options.add(op);

}

}
</script>

</head>

<body onload="select1()">
<center>
<h1>资产管理添加页面</h1>
<form name="frm" action="GeneralServlet?act=insertdo" method="post" onsubmit="return check()">
名称:<input type="text" name="name" id="nanme"><br><br>

类型:<select name="type" id="type" onchange="select2(document.frm.type.selectedIndex)" >
<option>-->请选择<--</option>
</select>
<br><br>

分类:<select name="little_type" id="little_type">
<option>-->请选择<--</option>
</select>
<br><br>
型号:<input type="text" name="model" id="model"><br><br>
价值:<input type="text" name="value" id="value"><br><br>
购买日期:<select name="year" id="year">
<option>年</option>
</select>-
<select name="month" id="month">
<option>月</option>
</select>-
<select name="date" id="date">
<option>日</option>
</select>
<br><br>
状态:<select name="state" id="state">
<option value="正常">正常</option>
<option value="维修">维修</option>
<option value="报废">报废</option>
</select>
<br><br>
使用者:<input type="text" name="user" id="user" ><br><br>
备注:<input type="text" name="remarks" id="remarks" value="可以不写"><br><br>
<input type="submit" value="添加">
</form>
</center>
</body>
</html>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-20
使用jquery
1 引入jquery的js文件在页面
<script type="text/javascript" src="<%=request.getContextPath() %>/jxc/js/jquery-1.4.2.min.js"></script>
2 下拉select
<select name="st_tid" id="t_id" onchange="goodsajax(this.options[this.selectedIndex].value);">
<option value="">请选择</option>
<c:forEach var="obj" items="${tlst}">
<option value="${obj.t_id }">${obj.t_name }</option>
</c:forEach>
</select>
<select name="st_gid" id="st_gid">
<option value="">请选择</option>
</select>
3 写js
function goodsajax(tid){
if(tid==""){return ;}
$('#st_gid').load("<%=request.getContextPath()%>/goods.do?methods=gajax&t_id="+tid+"&mm="+new Date().getTime());
}

4 js 提交action
Map map = new HashMap();
if(request.getParameter("t_id") == null || request.getParameter("t_id").equals("")){
return null;
}
map.put("t_id", request.getParameter("t_id"));
GoodsDao gDao = new GoodsDao();
request.setAttribute("glst", gDao.quertList(map));
return new ActionForward("/jxc/goods_ajax.jsp");

5
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c"%>
<option value="">请选择</option>
<c:forEach items="${glst}" var="obj">
<option value="${obj.g_id}">${obj.g_name}</option>
</c:forEach>
第2个回答  推荐于2018-04-04
这个简单,而且是ssh,更方便,在action里面,查询出这3个select需要的list,在页面中用小脚本<%%>来接收啊,就是request.getAttribute(),然后再在select上面做循环,就这么简单的!

那也没关系啊,只要你是可以把值循环取出来,标签都可以的啊!本回答被网友采纳
第3个回答  2011-06-14
在第一个select加js方法,用ajax调后台action返回给第二个。依此类推
相似回答