ajax二级联动(选一个下拉表的值,另外两个多选框值也跟着改变)
我会:
选一个下拉表,另一个下拉表的值跟着变化
但是,现在想:
选一个下拉表,另外一个下拉表和两个多选框的值也跟着变化
请问如何实现好呢?
因为项目是这样的,选一个员工,要能看到第一层次管理他的人,和第二层次管理他的人,这些人会随员工的不同而不同的。
请问如何传值好呢?谢谢,谢谢。
附上,一对一的二级联动:
var req;
function chooseEmp()
{
var emp= document.getElementById('empId');
var url = "MagEmp?emp="+escape(emp.value);
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
}else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if(req){
req.open("GET", url, true);
req.onreadystatechange = callback;
req.send(null);
}
}
function callback()
{
if(req.readyState == 4)
{
if(req.status == 200)
{
parseMessage();
}else{
alert("Not able to retrieve description"+req.statusText);
}
}
}
function parseMessage()
{
var xmlDoc=req.responseXML.documentElement;
var xSel=xmlDoc.getElementsByTagName('select');
var select_root=document.getElementById('magId');
select_root.options.length=0;
for(var i=0;i<xSel.length;i++)
{
var xValue=xSel[i].childNodes[0].firstChild.nodeValue;
var xText=xSel[i].childNodes[1].firstChild.nodeValue;
var option=new Option(xText,xValue);
try{
select_root.add(option);
}catch(e){
}
}
}
[解决办法]
不就多加两个多选框的值的改变吗?不看你代码了。。。怀疑你懂不懂你的代码,,,既然那个会,,再加十个百个改变也都差不多啊。。。
[解决办法]
jAVA
net.sf.json.JSONObject json = new net.sf.json.JSONObject();
JSONArray array = null;
net.sf.json.JSONObject member = null;
DaoOut out = DaoController.execute(D_projectS01Dao.class, null);
List list = out.getDataList();
if (list != null)
{
array = new JSONArray();
Iterator itr = list.iterator();
while (itr.hasNext())
{
member = new net.sf.json.JSONObject();
D_project info = (D_project)itr.next();
member.put("id", info.getProject_id()== null ? "" :info.getProject_id());
member.put("name", info.getProject_category()== null ? "" :info.getProject_category());
array.add(member);
}
}
json.put("mydata", array);
response.getWriter().write(json.toString());
response.getWriter().flush();
response.getWriter().close();
[解决办法]
JQuery+Json吧,Json在后台组织好数据格式,javascript就能直接解析。
给你个,我现在项目用到的一个小例子,下拉列表框选择之后,下面表格内容自动更改。
//选择具体的某一船 function changePro(){ shipName=$("#project").find("option:selected").text(); var shipNum = $("#project").find("option:selected").val(); if(shipNum==""){ $("#projectTab tbody tr").remove(); return; } //根据所选择的船号,利用JqueryAjax进行查询 //提交查询 var url = "<%=request.getContextPath()%>/WEB-ROOT/bid/award"; $.post(url, { cmd:"queryship", shid:"<%=sid%>", shipnumber:shipNum }, callBack, "json"); } function callBack(json){ $("#projectTab>tbody>tr").remove(); //检查返回的结果是否返回error参数,如果返回error参数则表示查询出错 var len = json["list"].length; if(len==0){ alert('对不起,该船暂时没有投标数据'); } var choseText=""; for(var i=0;i<len;i++){ choseText +="<tr>"; var tdpreStr = "<td class='tablebody1' nowrap>"; var checkStr ="<input type='checkbox' name='check' value='"+json["list"][i].SID+"' onclick='sele(this,"+(i+1)+")' />"; choseText += tdpreStr+checkStr+"</td>"+tdpreStr+json["list"][i].SUNIT_BID+"</td>" +tdpreStr+json["list"][i].SUSER_BID+"</td>"+tdpreStr+json["list"][i].NPRICE+"</td>" +tdpreStr+json["list"][i].SCURRENCY+"</td>"+tdpreStr+"<span>"+json["list"][i].NNUMBER+"</span>"+"</td>" +tdpreStr+json["list"][i].SMODE+"</td>"+tdpreStr+json["list"][i].SCUSTOMER+"</td>" +tdpreStr+json["list"][i].SMEMO+"</td>"+tdpreStr+json["list"][i].STIME_BID+"</td>"; choseText +="</tr>"; } $("#projectTab tbody").append(choseText); }