jsp用ajax级联个下拉菜单.

如题所述

jsp中用ajax实现级联下拉:
参考例子:
1、ajax.jsp
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Ajax</title>
<script type="text/javascript">
function loadXMLDoc(txt) {
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var citys = xmlhttp.responseText.split(',');
document.getElementById("citys").length = 1;
for (i = 0; i < citys.length - 1; i++) {
document.getElementById("citys").add(new Option(citys[i], citys[i]));
}
// document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax/getdata.aspx?pro="+txt, true);
xmlhttp.send();
}
</script>
</head>
<body>
<h2>AJAX</h2>
<select id="Select1" onchange="loadXMLDoc(this.value)">
<option>请选择省份</option>
<option value="1">江苏</option>
<option value="2">上海</option>
</select>
<select id="citys">
<option>请选择城市</option>
</select>
<div id="myDiv"></div>
</body>
</html>
后台取数据代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class ajax_getdata : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string[] js=new string[]{"南京", "苏州", "常州" , "无锡" , "镇江"};
string pro=Request.QueryString["pro"];
if (pro == "1")
{
string temp = "";
for (int i = 0; i < js.Length; i++)
{
temp = temp + js[i];
temp = temp + ",";
}
Response.Write(temp);
}
else
Response.Write("");
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-07-14
参考如下应该能做出来了。
function loadSec(id){
$.getJSON(
"your URL",
{"id":id},
function(data){
var obj=data;
for(var i=0;i<obj.length;i++){
var opt_str="<option value="+obj[i].id+">"+obj[i].value+"</option>";//拼成option对象
var $opt=$(opt_str);
$("#indSec").html("<option value='0000000'>所有</option>");
$("#indSec").append($opt);
}
}
);
}追问

直接用这个jquery的请示就可以了吗?

追答

你只要在第一级你的选项或者列表在选择的情况下触发这上面我发给你的请求,这样级联的菜单选项就会根据你的请求结果拼出"+obj[i].value+"。这个就是选项了。

本回答被提问者采纳
相似回答