本文實例為大家分享了ajax實現(xiàn)無刷新省市縣三級聯(lián)動的具體代碼,供大家參考,具體內容如下
效果圖:
實現(xiàn)代碼:
1、html:
html> head> title>/title> style type="text/css"> select { width: 150px; } /style> script src="js/Jquery1.7.js" type="text/javascript">/script> script type="text/javascript"> $(function () { $.ajax({ type: "post", contentType: "application/json", url: "WebService1.asmx/GetProvince", data: "{}", success: function (result) { var stroption = ''; for (var i = 0; i result.d.length; i++) { stroption += 'option value=' + result.d[i].provinceID + '>'; stroption += result.d[i].provincename; stroption += '/option>'; } $('#seprovince').append(stroption); } }) $('#seprovince').change(function () { $('#secity option:gt(0)').remove(); $('#searea option:gt(0)').remove(); $.ajax({ type: "post", contentType: "application/json", url: "WebService1.asmx/GetCItyByPro", data: "{proid:'" + $(this).val() + "'}", success: function (result) { var strocity = ''; for (var i = 0; i result.d.length; i++) { strocity += 'option value=' + result.d[i].cityID + '>'; strocity += result.d[i].cityname; strocity += '/option>'; } $('#secity').append(strocity); } }) }) $('#secity').change(function () { $('#searea option:gt(0)').remove(); $.ajax({ type: "post", contentType: "application/json", url: "WebService1.asmx/GetAreaByCity", data: "{cityid:'" + $(this).val() + "'}", success: function (result) { var stroarea = ''; for (var i = 0; i result.d.length; i++) { stroarea += 'option value=' + result.d[i].areaID + '>'; stroarea += result.d[i].areaname; stroarea += '/option>'; } $('#searea').append(stroarea); } }) }) }) /script> /head> body> table> tr> td> 用戶名 /td> td> input id="Text1" type="text" /> /td> /tr> tr> td> 密碼 /td> td> input id="Text2" type="text" /> /td> /tr> tr> td> 確認密碼 /td> td> input id="Text3" type="text" /> /td> /tr> tr> td> 郵箱 /td> td> input id="Text4" type="text" /> /td> /tr> tr> td> 地址 /td> td> select id="seprovince"> option>--請選擇--/option> /select> 省 select id="secity"> option>--請選擇--/option> /select>市 select id="searea"> option>--請選擇--/option> /select>縣 /td> /tr> /table> /body> /html>
2、WebService1.asmx
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace 省市縣三級聯(lián)動 { /// summary> /// WebService1 的摘要說明 /// /summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消對下行的注釋。 [System.Web.Script.Services.ScriptService] public class WebService1 : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public ListModel.province> GetProvince() { BLL.province bpro = new BLL.province(); ListModel.province> list = bpro.GetListModel(); return list; } [WebMethod] public ListModel.city> GetCItyByPro(string proid) { BLL.city bcity = new BLL.city(); ListModel.city> list = bcity.GetListModel("father='" + proid + "'"); return list; } [WebMethod] public ListModel.area> GetAreaByCity(string cityid) { BLL.area barea = new BLL.area(); ListModel.area> list = barea.GetListModel("father='" + cityid + "'"); return list; } } }
在三層的Bll層中的city.cs和area.cs中分別添加以下屬性
//city.cs: public ListModel.city> GetListModel(string strsql) { return dal.GetListModel(strsql); } //area.cs: public ListModel.area> GetListModel(string strsql) { return dal.GetListModel(strsql); }
在三層的DAL層中的city.cs和area.cs中分別添加以下方法
//city.cs: public System.Collections.Generic.ListModel.city> GetListModel(string strsql) { System.Collections.Generic.ListModel.city> list = new System.Collections.Generic.ListModel.city>(); DataTable dt = GetList(strsql).Tables[0]; foreach (DataRow row in dt.Rows) { Model.city mcity = new Model.city(); mcity.id = Convert.ToInt32(row["id"]); mcity.cityID = row["cityID"].ToString(); mcity.cityname = row["cityname"].ToString(); list.Add(mcity); } return list; } //area.cs: public System.Collections.Generic.ListModel.area> GetListModel(string strsql) { DataTable dt = GetList(strsql).Tables[0]; System.Collections.Generic.ListModel.area> list = new System.Collections.Generic.ListModel.area>(); foreach (DataRow row in dt.Rows) { Model.area marea = new Model.area() { id = Convert.ToInt32(row["id"]), areaID = row["areaID"].ToString(), areaname = row["areaname"].ToString() }; list.Add(marea); } return list; }
以上就是本文的全部內容,希望對大家的學習有所幫助。
上一篇:Ajax驗證用戶的唯一性