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

级联列表框,的程序,谁有啊?
想实现商品的类型选择,类似paipai发布商品的,选择分类那样,四个列表框,当选中一级后,二级的内容就变了。以此类推。 
可能要做ajax实现,哪位有这样的代码,分享一下吧,谢谢。 

请注意,不是级联下拉列表,是列表框。

------解决方案--------------------

------解决方案--------------------
偶给你一点点吧。。只能给你一些源码。程序就不能给你了。

<td align="center" class="tb-light-blue" colspan="2">
模板列表:<select id="pid" name="pid" onchange="refreshsel();">
<option value="">请选择</option>
<c:forEach var="tep" items="${tepList}">
<option value="${tep['TEMPLET_ID'] }">${tep['TEMPLET_NAME'] }</option>
</c:forEach>
</select> </td>

属性名称:
<select id="proId" name="proId" size="20" title="双击添加" style="width:120px" multiple ondblclick="selectOption(this,haveProperty);">
<c:forEach var="alllist" items="${proList }">
<option value="${alllist.propertyid}" 
<c:if test="${jtempletpropList.propertyid==alllist.propertyid}"> selected="selected" </c:if>
>
${alllist.propertyname}</option>
</c:forEach>
</select>
首先要有两个select两个都是从数据库里面得到了。就是要根据上面的模板选择一个,然后来得到不同的属性名称。

在onchange事件里面写一个事件。refreshsel();

function refreshsel(){
req=new XMLHttpRequest();
if (req) {
req.onreadystatechange=function() {
if (req.readyState==4 && req.status==200) {//判断状态,4是已发送,200已完成
cleanList2();
var options = req.responseXML.getElementsByTagName("proper");
for (var i = 0; i < options.length; i++) {
document.all.proId.appendChild(createElementWithValue2(options[i]));
}
}
}
}
req.open('POST', 'gerProper.do');
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send("pid=" + document.all.pid.value);
}
function createElementWithValue2(text) {
var element = document.createElement("option");
element.setAttribute("value", text.getAttribute("properid"));
var text = document.createTextNode(text.firstChild.nodeValue);
element.appendChild(text);
return element;
}
function cleanList2() {
var elmtObj = document.getElementById("proId");
while(elmtObj.options.length > 0){
elmtObj.remove(0); 
}
}
然后使用ajax发送请求。到'gerProper.do'这个do
在do这个方法里面把查到的结果拼成 xml 文件,传到前台来处理就可以了。

@RequestMapping("/gerProper.do")
public void gerProper(JpropertyModel jproperty,HttpServletRequest req,HttpServletResponse response) throws IOException{
req.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
Map map = new HashMap();
StringBuffer buffer = new StringBuffer("<propers>");
List proList= jpropertyService.getProPer(jproperty);
if(proList!=null && proList.size()>0){
for(int i=0;i<proList.size();i++){
map = (Map) proList.get(i);
buffer.append("<proper properid=\"" + map.get("PROPERTY_ID")+ "\">" + map.get("PROPERTY_NAME") + "</proper>");
}
}
response.setContentType("text/xml");
out.writ