jsp中select下拉列表获取数据库值后,如何根据select的变化给input赋select下拉列表数据库中对应的值
select下拉列表中的数据和input的数据是不一样的,比如select里面的是商品,input里面的是单位就是根据选的商品,自动获取数据库中该商品的单位...
select下拉列表中的数据和input的数据是不一样的,比如select里面的是商品,input里面的是单位
就是根据选的商品,自动获取数据库中该商品的单位 展开
就是根据选的商品,自动获取数据库中该商品的单位 展开
2个回答
展开全部
两个思路供参考,第一种,jsp输出的时候,把数据输出成javascript的一个全局数组,再在select的onchange事件里,读取数组的数据直接填上(数据不多的话,推荐这个方法,执行起来速度快);第二种方法,用Ajax,相关代码百度一下就有,使用也不难,就在select的onchange事件里用Ajax请求一个input的数据,得到回应就把数据填入input
追问
求第二种具体方法
追答
ajax={};
ajax.x=function(){
try{
return new ActiveXObject("Msxml2.XMLHTTP")
}catch(e){
try{
return new ActiveXObject("Microsoft.XMLHTTP")
}catch(e){
return new XMLHttpRequest
}
}
};
ajax.send=function(u,f,m,a){
var x=ajax.x();
x.open(m,u,true);
x.onreadystatechange=function(){
x.readyState==4&&f(x.responseText)
};
m=="POST"&&x.setRequestHeader("Content-type","application/x-www-form-urlencoded");
x.send(a)
};
ajax.post=function(url,func,args){
ajax.send(url,func,"POST",args)
}
document.getElementById("你的select ID").onchange=function(){
ajax.send(url,chkResult,"GET","");//url为你的数据处理JSP,假设你的数据处理JSP文件为getData.jsp,则url应该是 "getData.jsp?sel=2"这样的形式
}
function chkResult(t){
document.getElementById("Input ID").value=t;
}
这种方法你需要另写一个JSP来处理数据请求,只要输出INPUT要的数据就行了,不要任何的HTML标签
其实jQuery就是一个写好的JS库,要把这个JS库链接进你的页面才能用
用jQuery来写,代码会显得比较少,但不方便新手理解
下面是我按jQuery的语法,将我的代码修改过来的,第一次写jQuery,可能会有纰漏。
$("#你拉select ID").on('change',function(){
$.ajax({
type: "GET",
url: "getData.jsp",
data: "sel=2"
}).done(function(msg){
$("#Input ID").value=msg;
}).fail(function(xmlHttpRequest,statusText,errorThrown) {
alert(
"数据请求失败.\n\n"
+ "XML Http Request: " + JSON.stringify(xmlHttpRequest)
+ ",\nStatus Text: " + statusText
+ ",\nError Thrown: " + errorThrown);
});
});
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询