[Ajax]ajax入门(二)

2014-11-24 08:14:28 · 作者: · 浏览: 1
ta.Pid == pid) { wantedList.Add(data); } } //拼json形式的字符串 //[{ Id: 1, Name: 河北省, PId: 0 }, // { Id: 2, Name: 日本省, PId: 0 }, // { Id: 3, Name: 台湾省, PId: 0 } // ] StringBuilder sb = new StringBuilder(); sb.Append([); foreach (Data data in wantedList) { sb.Append({ Id: +data.Id+, Name: +data.Name+, PId: +data.Pid+ },); } sb.Remove(sb.Length - 1, 1); sb.Append(]); return sb.ToString(); } /// /// 模拟从数据库中加载数据,返回泛型集合 /// /// private List GetAllDatas() { List list = new List (); list.Add(new Data() { Id = 1, Name = 河北省, Pid = 0 }); list.Add(new Data() { Id = 2, Name = 台湾省, Pid = 0 }); list.Add(new Data() { Id = 3, Name = 日本省, Pid = 0 }); list.Add(new Data() { Id = 4, Name = 石家庄, Pid = 1 }); list.Add(new Data() { Id = 5, Name = 邯郸市, Pid = 1 }); list.Add(new Data() { Id = 6, Name = 邢台市, Pid = 1 }); list.Add(new Data() { Id = 7, Name = 高雄市, Pid = 2 }); list.Add(new Data() { Id = 8, Name = 台北, Pid = 2 }); list.Add(new Data() { Id = 9, Name = 台中, Pid = 2 }); list.Add(new Data() { Id = 10, Name = 东京, Pid = 3 }); list.Add(new Data() { Id = 11, Name = 冲绳, Pid = 3 }); list.Add(new Data() { Id = 12, Name = 大阪, Pid = 3 }); return list; } public bool IsReusable { get { return false; } } }
pro.htm:

 
  <script src=ajax.js type=text/java script><script type=text/java script> window.onload = function () { loadProvince(); } function loadProvince() { var province = my$(province); //发送异步请求获取省的数据 ajax(get, 06-pro.ashx pid=0, null, function (s) { //把字符串转化成对象 var array = eva l(s); for (var i = 0; i < array.length; i++) { var json = array[i]; var option = document.createElement(option); option.innerHTML = json.Name; option.value = json.Id; province.appendChild(option); } //当省加载完,再加载市 loadCity(); }, function () { alert(服务器内部错误); }); } function loadCity() { var pid = my$(province).value; var city = my$(city); //清空下拉框 city.innerHTML = ; ajax(get, 06-pro.ashx pid= + pid, null, function (s) { //把字符串转化成对象 var array = eva l(s); for (var i = 0; i < array.length; i++) { var json = array[i]; var option = document.createElement(option); option.innerHTML = json.Name; option.value = json.Id; city.appendChild(option); } }, function () { alert(服务器内部错误); }); } 
  
 
 

自己封装的ajax:

function my$(id) {
    return document.getElementById(id);
}

var xhr = createXHR();
function createXHR() {
    var request;
    if (XMLHttpRequest) {
        request = new XMLHttpRequest();

    } else {
        request = new ActiveXObject(Microsoft.XMLHTTP);
    }
    return request;
}

function ajax(method,url,data,fnSuccess,fnError) {

    xhr.open(method, url, true);
    if (method == post) {
        //!------------------!注意
        xhr.setRequestHeader(Content-Type, application/x-www-form-urlencoded);
    }
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
          
            if (xhr.status == 200) {
                var s = xhr.responseText;
                fnSuccess(s);
            } else {
                fnError();
            }
        }
    }
    xhr.send(data);
}

这里要感谢刘兄的指导,在此鸣谢!