Ajax版省市三联动(源码)

本文介绍了一个使用Ajax和jQuery实现的省市县三级联动选择器。该选择器通过调用WebService接口来动态加载省、市、县的数据,并在用户选择省份时自动更新下拉列表中的城市选项,在选择城市时更新县区选项。

 <script src="jquery-1.9.1.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 strprovince;
                    for (var i = 0; i < result.d.length; i++) {
                        strprovince += "<option value='" + result.d[i].provinceID + "'>";
                        strprovince += result.d[i].provincename;
                        strprovince += "</option>";
                    }
                    $("#province").append(strprovince);
                }
            })
            $("#province").change(function () {
                $("#city option:gt(0)").remove();
                $("#area option:gt(0)").remove();
                $.ajax({
                    type: "post",
                    contentType: "application/json",
                    url: "WebService1.asmx/GetCity",
                    data: "{provid:'" + $(this).val() + "'}",
                    success: function (result) {
                        var strcity;
                        for (var i = 0; i < result.d.length; i++) {
                            strcity += "<option value='" + result.d[i].cityID + "'>";
                            strcity += result.d[i].cityname;
                            strcity += "</option>";
                        }
                        $("#city").append(strcity);
                    }
                })
            })
            $("#city").change(function () {
                $("#area option:gt(0)").remove();
                $.ajax({
                    type: "post",
                    contentType: "application/json",
                    url: "WebService1.asmx/GetArea",
                    data: "{cityid:'" + $(this).val() + "'}",
                    success: function (result) {
                        var strarea;
                        for (var i = 0; i < result.d.length; i++) {
                            strarea += "<option value='" + result.d[i].areaID + "'>",
                            strarea += result.d[i].areaname,
                            strarea += "</option>"
                        }
                        $("#area").append(strarea);
                    }
                })
            })
        })
    </script>
</head>
<body>
    <select id="province">
        <option>----请选择省----</option>
    </select>
    <select id="city">
        <option>----请选择市----</option>
    </select>
    <select id="area">
        <option>----请选择县----</option>
    </select>
</body>

 

*********************************WebService1.asmx页面***********************************

 [WebMethod]
        public List<fenye.Model.province> GetProvince()
        {
            fenye.BLL.province prov = new fenye.BLL.province();
            List<fenye.Model.province> provlist = prov.GetListModel();
            return provlist;
        }
        [WebMethod]
        public List<fenye.Model.city> GetCity(string provid)
        {
            fenye.BLL.city city = new fenye.BLL.city();
            List<fenye.Model.city> citylist = city.GetListcity("father='" + provid + "'");
            return citylist;
        }
        [WebMethod]
        public List<fenye.Model.area> GetArea(string cityid)
        {
            fenye.BLL.area area = new fenye.BLL.area();
            List<fenye.Model.area> arealist = area.GetListarea("father='" + cityid + "'");
            return arealist;
        }

 

*********************************DAL province********************************************

/// <summary>
  /// 获得数据列表
  /// </summary>
  public DataSet GetList(string strWhere)
  {
   StringBuilder strSql=new StringBuilder();
   strSql.Append("select id,provinceID,provincename ");
   strSql.Append(" FROM province ");
   if(strWhere.Trim()!="")
   {
    strSql.Append(" where "+strWhere);
   }
   return DbHelperSQL.Query(strSql.ToString());
  }

 //获取数据列表
        public List<Model.province> GetListModel()
        {
            List<Model.province> listprov = new List<Model.province>();
            DataTable dt = GetList("").Tables[0];
            foreach (DataRow row in dt.Rows)
            {
                Model.province prov = new Model.province();
                prov.id = Convert.ToInt32(row["id"]);
                prov.provinceID = row["provinceID"].ToString();
                prov.provincename = row["provincename"].ToString();
                listprov.Add(prov);
            }
            return listprov;
        }

***********************************DAL city*************************************************

/// <summary>
  /// 获得数据列表
  /// </summary>
  public DataSet GetList(string strWhere)
  {
   StringBuilder strSql=new StringBuilder();
   strSql.Append("select id,cityID,cityname,father ");
   strSql.Append(" FROM city ");
   if(strWhere.Trim()!="")
   {
    strSql.Append(" where "+strWhere);
   }
   return DbHelperSQL.Query(strSql.ToString());
  }

 public List<Model.city> GetListcity(string strSql)
        {
            List<Model.city> listcity = new List<Model.city>();
            DataTable dt = GetList(strSql).Tables[0];
            foreach (DataRow row in dt.Rows)
            {
                Model.city city = new Model.city();
                city.cityID = row["cityID"].ToString();
                city.cityname = row["cityname"].ToString();
                listcity.Add(city);
            }
            return listcity;
        }

*************************DAL area*************************************

/// <summary>
  /// 获得数据列表
  /// </summary>
  public DataSet GetList(string strWhere)
  {
   StringBuilder strSql=new StringBuilder();
   strSql.Append("select id,areaID,areaname,father ");
   strSql.Append(" FROM area ");
   if(strWhere.Trim()!="")
   {
    strSql.Append(" where "+strWhere);
   }
   return DbHelperSQL.Query(strSql.ToString());
  }

 public List<Model.area> GetListarea(string sqlStr)
        {
            List<Model.area> listarea = new List<Model.area>();
            DataTable dt = GetList(sqlStr).Tables[0];
            foreach (DataRow row in dt.Rows)
            {
                Model.area area = new Model.area();
                area.areaID = row["areaID"].ToString();
                area.areaname = row["areaname"].ToString();
                listarea.Add(area);
            }
            return listarea;
        }

********************************BLL provice***************************************

public List<Model.province> GetListModel()
        {
            return dal.GetListModel();
        }

*********************************BLL city******************************************

public List<Model.city> GetListcity(string sqlStr)
        {
            return dal.GetListcity(sqlStr);
        }

*********************************BLL area********************************************

public List<Model.area> GetListarea(string sqlStr)
        {
            return dal.GetListarea(sqlStr);
        }

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值