java中下拉菜单的值,怎样动态从数据库中选择,详细点的过程!谢谢各位Bai友···
3个回答
展开全部
这个简单的可以有如下实现:
同步:后台不管是servlet action或者contoller也好,总之通过调用数据库查询的类,将结果封装进一个对象,然后保存到request或者session中(看需要),然后在前台页面上获取该对象里面的值,在对应的下拉菜单上迭代输出即可,采用jsp jstl或者框架的标签输出都随意,按项目来。
异步:应用ajax,后台获取数据是一样的,只不过通过ajax异步获取数据,然后使用js输出内容,页面无刷新而已。
详细的很难一一描述清楚,楼主可参考并适当谷哥查询。。
同步:后台不管是servlet action或者contoller也好,总之通过调用数据库查询的类,将结果封装进一个对象,然后保存到request或者session中(看需要),然后在前台页面上获取该对象里面的值,在对应的下拉菜单上迭代输出即可,采用jsp jstl或者框架的标签输出都随意,按项目来。
异步:应用ajax,后台获取数据是一样的,只不过通过ajax异步获取数据,然后使用js输出内容,页面无刷新而已。
详细的很难一一描述清楚,楼主可参考并适当谷哥查询。。
展开全部
ajax异步访问
<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
<head>
<script type="text/javascript">
function collect(index){
var povalue=document.getElementById("s1").options[index].value;
var xhr=new XMLHttpRequest();
url="/from/city?enname="+povalue;
xhr.open("get",url,true);
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
var json=xhr.responseText;
var sObj=document.getElementById("s2");
if(json=="0"){
sObj.options.length=1;
}else{
var optionObj=eval("("+json+")");
sObj.options.length=1;
fill(optionObj,sObj);
}
}
}
xhr.send(null);
}
function fill(items,sobj){
for(var i=0;i<items.length;i++){
var opObj=new Option(items[i]);
sobj.appendChild(opObj);
}
}
</script>
</head>
<body>
请选择地区:
<form action="">
<select id="s1" onchange="collect(this.selectedIndex);">
<option>--请选择--</option>
</select>
<script type="text/javascript">
var req=new XMLHttpRequest();
url="/from/city";
req.open("get",url,true);
req.onreadystatechange=function(){
if(req.readyState==4){
var json=req.responseText;
var sobj=document.getElementById("s1");
var potions=eval("("+json+")");
for(var i=0;i<potions.length;i++){
var opObj=new Option(potions[i].name,potions[i].enname);
sobj.appendChild(opObj);
}
}
}
req.send(null);
</script>
省
<select id="s2">
<option>--请选择--</option>
</select>市
</form>
</body>
<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
<head>
<script type="text/javascript">
function collect(index){
var povalue=document.getElementById("s1").options[index].value;
var xhr=new XMLHttpRequest();
url="/from/city?enname="+povalue;
xhr.open("get",url,true);
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
var json=xhr.responseText;
var sObj=document.getElementById("s2");
if(json=="0"){
sObj.options.length=1;
}else{
var optionObj=eval("("+json+")");
sObj.options.length=1;
fill(optionObj,sObj);
}
}
}
xhr.send(null);
}
function fill(items,sobj){
for(var i=0;i<items.length;i++){
var opObj=new Option(items[i]);
sobj.appendChild(opObj);
}
}
</script>
</head>
<body>
请选择地区:
<form action="">
<select id="s1" onchange="collect(this.selectedIndex);">
<option>--请选择--</option>
</select>
<script type="text/javascript">
var req=new XMLHttpRequest();
url="/from/city";
req.open("get",url,true);
req.onreadystatechange=function(){
if(req.readyState==4){
var json=req.responseText;
var sobj=document.getElementById("s1");
var potions=eval("("+json+")");
for(var i=0;i<potions.length;i++){
var opObj=new Option(potions[i].name,potions[i].enname);
sobj.appendChild(opObj);
}
}
}
req.send(null);
</script>
省
<select id="s2">
<option>--请选择--</option>
</select>市
</form>
</body>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个数据库表对应一个类,一条记录对应一条对象,把查出来的数据封装成对象,用JComboBox.addItem(Object object) 为下拉框添加项;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询