在ajax程序要调用的asp程序中加入如下代码:
Response.ContentType = "text/html"
Response.Charset = "GB2312" '解决乱码问题
示例:
1.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="JavaScript" type="text/JavaScript">
function clearDynaList(oList){
for (var i = oList.options.length; i >= 0; i--){
oList.options[i] = null;
}
oList.selectedIndex = -1;
}
var xmlHttp = false;
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("MsXml2.XmlHttp");
} else {
xmlHttp = new XMLHttpRequest();
}
function callServer(prov1,prov2) {
// var prov2 = document.getElementById("prov2").value;
// var oList2 = document.forms[form2].elements[prov2]; 为何不能引用元素啊?
var url = "getCity.asp?prov1=" + escape(prov1)+"&prov2="+prov2;
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);
}
function updatePage() {
if (xmlHttp.readyState != 4)
{loader.style.display='';
}
if (xmlHttp.readyState == 4) //4 表示就绪
{
loader.style.display='none';
var prov2str1=xmlHttp.responseText; //返回值,应该是用,隔开的字符串
//alert(prov2str1);
var prov2str=prov2str1.split(",");
//alert(prov2str[1] + prov2str.length);
var pform=eval("document.form1."+prov2str[0]);
//alert(pform);
clearDynaList(pform); //清空选择框
pform.options[0] = new Option("-请选择-",""); //张勇
for (var i = 2; i < prov2str.length+1; i= i +1)
{
pform.options[i-2] = new Option(prov2str[i-1], prov2str[i-1]);
}
pform.selectedIndex = 0;
}
}
</script>
</head>
<body>
<div id="loader" style="display:none">正在载入</div>
<form name="form1" method="post" action="">
<p> </p>
<p> 省
<select name="prov1" id="prov1" onChange="callServer(this.value,'prov2')">
<option value="340000" >安徽省</option>
<option value="820000">澳门特别行政区</option>
<option value="110000">北京市</option>
<option value="350000">福建省</option>
<option value="620000">甘肃省</option>
<option value="440000">广东省</option>
<option value="450000">广西壮族自治区</option>
<option value="520000">贵州省</option>
<option value="460000">海南省</option>
<option value="130000">河北省</option>
<option value="410000">河南省</option>
<option value="230000">黑龙江省</option>
<option value="420000">湖北省</option>
<option value="430000">湖南省</option>
<option value="220000">吉林省</option>
<option value="320000" >江苏省</option>
<option value="360000">江西省</option>
<option value="210000">辽宁省</option>
<option value="150000">内蒙古自治区</option>
<option value="640000">宁夏回族自治区</option>
<option value="630000">青海省</option>
<option value="370000">山东省</option>
<option value="140000">山西省</option>
<option value="610000">陕西省</option>
<option value="310000">上海市</option>
<option value="510000">四川省</option>
<option value="710000">台湾省</option>
<option value="120000">天津市</option>
<option value="540000">西藏自治区</option>
<option value="810000">香港特别行政区</option>
<option value="650000">新疆维吾尔自治区</option>
<option value="530000">云南省</option>
<option value="330000">浙江省</option>
<option value="500000">重庆市</option>
</select>
</p>
<p> 市
<select name="prov2" id="prov2">
</select>
</p>
<p>第二个:</p>
<p> 省
<select name="select" id="select" onChange="callServer(this.value,'select2')">
<option value="340000" >安徽省</option>
<option value="820000">澳门特别行政区</option>
<option value="110000">北京市</option>
<option value="350000">福建省</option>
<option value="620000">甘肃省</option>
<option value="440000">广东省</option>
<option value="450000">广西壮族自治区</option>
<option value="520000">贵州省</option>
<option value="460000">海南省</option>
<option value="130000">河北省</option>
<option value="410000">河南省</option>
<option value="230000">黑龙江省</option>
<option value="420000">湖北省</option>
<option value="430000">湖南省</option>
<option value="220000">吉林省</option>
<option value="320000" >江苏省</option>
<option value="360000">江西省</option>
<option value="210000">辽宁省</option>
<option value="150000">内蒙古自治区</option>
<option value="640000">宁夏回族自治区</option>
<option value="630000">青海省</option>
<option value="370000">山东省</option>
<option value="140000">山西省</option>
<option value="610000">陕西省</option>
<option value="310000">上海市</option>
<option value="510000">四川省</option>
<option value="710000">台湾省</option>
<option value="120000">天津市</option>
<option value="540000">西藏自治区</option>
<option value="810000">香港特别行政区</option>
<option value="650000">新疆维吾尔自治区</option>
<option value="530000">云南省</option>
<option value="330000">浙江省</option>
<option value="500000">重庆市</option>
</select>
</p>
<p> 市
<select name="select2" id="select2">
</select>
</p>
<p>第三个:</p>
<p> 省
<select name="select3" id="select3" onChange="callServer(this.value,'select4')">
<option value="340000" >安徽省</option>
<option value="820000">澳门特别行政区</option>
<option value="110000">北京市</option>
<option value="350000">福建省</option>
<option value="620000">甘肃省</option>
<option value="440000">广东省</option>
<option value="450000">广西壮族自治区</option>
<option value="520000">贵州省</option>
<option value="460000">海南省</option>
<option value="130000">河北省</option>
<option value="410000">河南省</option>
<option value="230000">黑龙江省</option>
<option value="420000">湖北省</option>
<option value="430000">湖南省</option>
<option value="220000">吉林省</option>
<option value="320000" >江苏省</option>
<option value="360000">江西省</option>
<option value="210000">辽宁省</option>
<option value="150000">内蒙古自治区</option>
<option value="640000">宁夏回族自治区</option>
<option value="630000">青海省</option>
<option value="370000">山东省</option>
<option value="140000">山西省</option>
<option value="610000">陕西省</option>
<option value="310000">上海市</option>
<option value="510000">四川省</option>
<option value="710000">台湾省</option>
<option value="120000">天津市</option>
<option value="540000">西藏自治区</option>
<option value="810000">香港特别行政区</option>
<option value="650000">新疆维吾尔自治区</option>
<option value="530000">云南省</option>
<option value="330000">浙江省</option>
<option value="500000">重庆市</option>
</select>
</p>
<p> 市
<select name="select4" id="select4">
</select>
</p>
</form>
</body>
</html>
getCity.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Response.ContentType = "text/html"
Response.Charset = "GB2312" '解决乱码问题
MM_city_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.MapPath("areapro.mdb")
If (Request.QueryString("prov1") <> "") Then
rs__MMColParam = Request.QueryString("prov1")
End If
Dim rs
Dim rs_numRows
Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_city_STRING
rs.Source = "SELECT city FROM city WHERE provinceID = '" + Replace(rs__MMColParam, "'", "''") + "' ORDER BY city ASC"
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 1
rs.Open()
city=request("prov2")&","
while not rs.eof
city=city&trim(rs("city"))&","
rs.movenext
wend
'要把最后一个","去掉
if right(city,1)="," then
city=left(city,len(city)-1)
end if
response.Write(city)
rs.Close()
Set rs = Nothing
%>
用到的数据库文件