AJAX和WebService实现省市县三级联动具体代码

2016-02-19 09:40 45 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的AJAX和WebService实现省市县三级联动具体代码,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - Web开发 】

-------------------------------------WebService1.asmx---------------------------------------
代码如下:

// 若要允许使用 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;
}

----------------------------------HTMLPage1.htm----------------------------
代码如下:

html xmlns="http://www.w3.org/1999/xhtml"
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
select id="seprovince"
option--请选择--/option
/select

select id="secity"
option--请选择--/option
/select市
select id="searea"
option--请选择--/option
/select县
/td
/tr
/table
/body
/html


注:用到了三层架构,dal层写了一些方法

来源:https://www.tulaoshi.com/n/20160219/1591665.html

延伸阅读
标签: Web开发
    多级联动下拉选择框,动态获取下一级,每一级数据为XML,可支持无限级(浏览器端需要Microsoft.XMLDOM支持)     项目需要,一个材料类别表,三级,总共有7000多条记录,如果一次获取会很慢的,所以就是用了动态读取,每次就读一级,且服务器端使用了缓存,效率还不错。 HTML代码如下: ...
标签: ASP
       XML文件         js文件   var MarketXMLDoc = new ActiveXObject("Msxml2.DOMDocument");   MarketXMLDoc.async = false;   MarketXMLDoc.load("/XML/MARKET_LIST.XML");   function GetMarketList(Type)   { &n...
标签: Web开发
与现在那些Ajax框架比较,优劣之处?看完再说吧: 1、Ajax.js 代码如下: /*     AJAX v1.4     HJF 2009-7-5 */ function AjaxDO(){     this.HttpRequest = null;     this.openMethod = null; //HTTP请求的方法,为Get、Post 或者Head  ...
标签: Web开发
兼容: opera 9.6 + chrome 2.0 + FF 3 + IE 6 效果:一边输入一边实现验证   环境:ruby 1.8.6 + rails 2.1.0 + windows 核心代码: html: 浏览器禁用javascript时显示提示信息: 代码如下: noscript div style="color:red"您的浏览器不支持javascript,部分功能无法使用/div /noscript 当浏览器禁用JS后,提交按钮不可用,实现客户...
标签: Web开发
Jquery的选择器很强大,对select的options对象添加的时候我找了老半天才找到 代码如下: /**//* 文件名:jquery.liu.select.js 功能说明:本js文件为jquery类库的一个插件,主要实现对select的操作. 作者:John Liu 编写日期:2008/03/12 */ //得到select项的个数 jQuery.fn.size = function() { return jQuery(this).get(0).options.len...

经验教程

817

收藏

45
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部