ajax省市县联动

procitysel.htm

 

<!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></title>
    <script src="procitysel.js" type="text/javascript"></script>
</head>
<body>
    <select id="proSel" >
    </select>
    <select id="citySel">
    </select>
     <select id="deSel" >
    </select>
</body>
</html>

 

 

procitysel.js

//创兼容所以游览器的建异步请求对象
function CreateXhr() {
    var xhrobj = false;
    try {
        xhrobj = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            xhrobj = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e1) {
            xhrobj = false;
        }
    }
    if (!xhrobj && typeof XMLHttpRequest != "underfined") {
        //创建异步以求对象
        xhrobj = new XMLHttpRequest();
    }
    return xhrobj;
}
var xhr = CreateXhr();
window.onload = function () {
    loadPr();
    document.getElementById("proSel").onchange = function () {
    selectcity(document.getElementById("proSel").value);

    }
    document.getElementById("citySel").onchange = function () {
        selectDe(document.getElementById("citySel").value);
    }
}
function loadPr() {
    xhr.open("Get", "procitysel.ashx?type=1", true);
    //   xhr.setRequestHeader("If-ModeFied-Since", "0")
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) {
                var jsonList = eval(xhr.responseText);
                var proSel = document.getElementById("proSel");
                // alert(jsonList[1].prName)
                for (var i = 0; i < jsonList.length; i++) {
                    proSel.options[i] = new Option(jsonList[i].prName, jsonList[i].prId);
                }
                selectcity(document.getElementById("proSel").value);
            }
        }
    }
    xhr.send(null);
}
function selectcity(proSelId) {
    document.getElementById("citySel").length = 0;
    document.getElementById("deSel").length = 0;
    xhr.open("Get", "procitysel.ashx?type=2&proId=" + proSelId + "", true);
    //   xhr.setRequestHeader("If-ModeFied-Since", "0")
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) {
                var jsonList = eval(xhr.responseText);
                var citySel = document.getElementById("citySel");
                // alert(jsonList[1].prName)
                for (var i = 0; i < jsonList.length; i++) {
                    citySel.options[i] = new Option(jsonList[i].cName, jsonList[i].cId);
                }

                selectDe(document.getElementById("citySel").value);
            }
        }
    }
    xhr.send(null);
}
function selectDe(dId) {
    xhr.open("Get", "procitysel.ashx?type=3&dId=" + dId + "", true);
    // xhr.setRequestHeader("If-ModeFied-Since", "0")
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) {

             //  alert(xhr.responseText);
                try {
                    var jsonList = eval(xhr.responseText);
                }
                catch (e) {
                    return;
                }
                var deSel = document.getElementById("deSel");
                // alert(jsonList[1].prName)
                for (var i = 0; i < jsonList.length; i++) {
                    deSel.options[i] = new Option(jsonList[i].dName, jsonList[i].dId);
                }


            }
        }
    }
    xhr.send(null);
}

procitysel.ashx

 

<%@ WebHandler Language="C#" Class="procitysel" %>

using System;
using System.Web;
using System.Data.SqlClient;
using System.Configuration;
public class procitysel : IHttpHandler
{


    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        string type = (string)context.Request.QueryString["type"];
        string connStr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
        SqlConnection conn = new SqlConnection(connStr);
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        if (type == "1")
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "select * from  dbo.T_Province";
            SqlDataReader dr = cmd.ExecuteReader();
            sb.Append("[");
            while (dr.Read())
            {
                sb.Append("{prId:" + (string)dr[0].ToString() + ",prName:'" + (string)dr[1] + "'},");
            }
            sb.Append("]");
            conn.Close();
            dr.Close();
            string strHtml=sb.ToString().Remove(sb.Length-2,1);
            context.Response.Write(strHtml);
        }
        else if (type == "2")
        {
            conn.Open();
            string proId = (string)context.Request.QueryString["ProId"];
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "select * from  dbo.T_City where ProID=" + proId + "";
            SqlDataReader dr = cmd.ExecuteReader();
            sb.Append("[");
            while (dr.Read())
            {
                sb.Append("{cId:" + (string)dr[0].ToString() + ",cName:'" + (string)dr[1] + "'},");
            }
            sb.Append("]");
            conn.Close();
            dr.Close();
            string strHtml = sb.ToString().Remove(sb.Length - 2, 1);
            context.Response.Write(strHtml);
        }
        else if (type == "3")
        {
            conn.Open();
            string dId = (string)context.Request.QueryString["dId"];
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "select * from  dbo.T_District where CityID=" + dId + "";
            SqlDataReader dr = cmd.ExecuteReader();
            sb.Append("[");
            while (dr.Read())
            {
                sb.Append("{dId:" + (string)dr[0].ToString() + ",dName:'" + (string)dr[1] + "'},");
            }
            sb.Append("]");
            conn.Close();
            dr.Close();
            string strHtml = sb.ToString().Remove(sb.Length - 2, 1);
            context.Response.Write(strHtml);
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}

 

数据库

 数据库上传不上来呀,

 

 

posted on 2013-01-07 18:32  爱程序,爱生活  阅读(325)  评论(0编辑  收藏  举报

导航