之前有写过用《Ajax控件来实现中国的省市区无刷新查询》

今天用JQuery来实现,用Ajax控件和JQuery的优缺点就先不说了。

效果图如下:

下面来结合代码来详细说明一下如何用JQuery实现。

在HTML页的Body标签内添加三个Select选项,分别用于显示省、市、区

<select id="S1" >
</select>
<select id="S2">
</select>
<select id="S3">
</select>

  

接下来该在Html页面编写JS脚本了,其中应该包含3个方法,即选择省份时,显示对应的市的方法,及选择市对应的区的方法。

1、显示所有省份的方法

function select1() {
$.ajax(
{
type: "post",
url: "Handler.ashx",
data: { "type": "province" },
success: function (msg) {
for (var i = 0; i < msg.length; i++) {
$("#S1").append("<option value=" + msg[i].ProvinceID + ">" + msg[i].ProvinceName + "</option>");
}
select2();
}
})
};

2、显示对应省份的市的方法

function select2() {
$("#S2").html("");
$.ajax(
{
type: "post",
url: "Handler.ashx",
data: { "type": "city","provinceID":$('#S1').attr("value") },
success: function (msg) {
for (var i = 0; i < msg.length; i++) {
$("#S2").append("<option value=" + msg[i].CityID + ">" + msg[i].CityName + "</option>");
}
select3();
}
})
};

3、显示对应市的区的方法

function select3() {
$("#S3").html("");
$.ajax(
{
type: "post",
url: "Handler.ashx",
data: { "type": "district","cityID":$('#S2').attr("value") },
success: function (msg) {
for (var i = 0; i < msg.length; i++) {
$("#S3").append("<option value=" + msg[i].DistrictID + ">" + msg[i].DistrictName + "</option>");
}
}
})
};

在JS方法写完后,要在页面载入的时候先显示“北京市”“北京市”“XX区”,总不能空白的给用户选择吧,呵呵。所以再加一段JS绑定方法。

 $(function () {
select1();
$('#S1').bind("change", select2);
$('#S2').bind("change", select3);
});

  

大家应该注意到了Ajax的格式,其中的url是处理页面,所以也要添加该页面。

Handler处理页面对应的也只是三个方法而已,一看就明白,所以就直接把代码贴出来了,如果不太懂的话可以联系我。

string str = @"Data Source=服务器;Initial Catalog=City;Integrated Security=True ;uid=sa; pwd=123456";
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "application/json";
if (context.Request["type"]=="province")
{
context.Response.Write(select1());
}
else if ( context.Request["type"] == "city" ) {
context.Response.Write ( select2 ( context.Request["provinceID"] ) );
}
else if ( context.Request["type"] == "district" ) {
context.Response.Write ( select3 ( context.Request["cityID"] ) );
}
}
public string select1() {
SqlConnection scon = new SqlConnection(str);
string sql = "select * from S_Province";
SqlDataAdapter sda = new SqlDataAdapter(sql,scon );
DataSet ds = new DataSet();
sda.Fill(ds);
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("[");
foreach (DataRow item in ds.Tables[0].Rows)
{
sb.Append("{");
sb.Append("\"ProvinceID\":\"" + item[0] + "\",\"ProvinceName\":\"" + item[1] + "\"");
sb.Append("},");
}
sb.Remove(sb.Length - 1, 1);
sb.Append("]");
return sb.ToString();
} public string select2 (string id ) {
SqlConnection scon = new SqlConnection ( str );
string sql = "select * from S_City where provinceID="+id;
SqlDataAdapter sda = new SqlDataAdapter ( sql, scon );
DataSet ds = new DataSet ( );
sda.Fill ( ds );
System.Text.StringBuilder sb = new System.Text.StringBuilder ( );
sb.Append ( "[" );
foreach ( DataRow item in ds.Tables[0].Rows ) {
sb.Append ( "{" );
sb.Append ( "\"CityID\":\"" + item[0] + "\",\"CityName\":\"" + item[1] + "\"" );
sb.Append ( "}," );
}
sb.Remove ( sb.Length - 1, 1 );
sb.Append ( "]" );
return sb.ToString ( );
} public string select3(string id) {
SqlConnection scon = new SqlConnection(str);
string sql = "select * from S_District where CityID="+id;
SqlDataAdapter sda = new SqlDataAdapter(sql,scon );
DataSet ds = new DataSet();
sda.Fill(ds);
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("[");
foreach (DataRow item in ds.Tables[0].Rows)
{
sb.Append("{");
sb.Append("\"DistrictID\":\"" + item[0] + "\",\"DistrictName\":\"" + item[1] + "\"");
sb.Append("},");
}
sb.Remove(sb.Length - 1, 1);
sb.Append("]");
return sb.ToString();
}

JQuery中国省市区无刷新三级联动查询的更多相关文章

  1. Hibernate+DWR无刷新三级联动

    DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在 ...

  2. Hibernate+struts+JqueryAjax+jSON实现无刷新三级联动

    看网上JqueryAjax三级联动的例子讲不是很全,代码也给的不是很全,给初学者带来一定的难度.小弟自己写了一个,可能有些地方不是很好,希望大家能够提出建议. 用的是Hibernate+struts2 ...

  3. 中国省市区json数据 三级联动

    <label> <span>购买地址</span> <select name="PurchaseProvince" style=" ...

  4. Ajax做无刷新三级联动

    1.引入JS and Jquery包 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  5. jquery 无刷新多级联动

    原先不熟悉jquery时,总在寻找无刷新的方法,在此不断的积累自己所知道的jquery属性,常用方法.以下为jquery实现的无刷新联动事件 分公司: <select id="Sele ...

  6. JQuery 实现页面无刷新

    对于JQuery实现页面无刷新的效果,即:应用这个JQuery这个组件,可以实现在页面上加载数据库中的数据信息,但是并没有给用户页面刷新的感觉,这样既可以有效的进行数据交互,也可以不妨碍用户的其他操作 ...

  7. Ajax省市区无刷新单表联动查询

    方法一: 在很多时候都需要用到无刷新级联查询,本文将以省市区的级联查询作为例子.注:此为单表三级联动 环境:Vistual Studio 2015 .MSSQL 1.首先下载AjaxControlTo ...

  8. WebForm使用JQuery实现DropDownList无刷新联动

    目录(?)[-] 1  JS代码 2 页面相关控件用的是平台封装的控件普通DropDownList也可以 3 后台C代码 注意事项   原来用的微软封装的Ajax控件UpdatePannel和Scri ...

  9. 三级联动查询全国省市区(xml与数据库)

    提供有china.xml和china.sql文件,实现全国省市区的三级联动效果 一.xml实现 import java.awt.EventQueue; import javax.swing.JFram ...

随机推荐

  1. css的引入方法

    1.外部途径: 建立xx.css文件与html文件放在同一目录下 加入 <link rel="stylesheet" type="text/css" hr ...

  2. LightOJ1032 Fast Bit Calculations(数位DP)

    显然数位DP. dp[i][j]表示所有末尾为j的i位二进制数相邻位的数量和 初始状态dp[2][1]=1 从长度i-1转移到长度i就是在i-1位的末尾添上0或1,转移方程就是: dp[i][0]=d ...

  3. BZOJ2707 : [SDOI2012]走迷宫

    首先求出SCC缩点,E[T]=0,按拓扑序计算 对于无边连出的块,如果不是T所在块,则称该块是死路块 对于一个块,如果其中的点连出的边是死路块,则它也是死路块 否则对于每块进行高斯消元求出期望 如果S ...

  4. A+B Problem 详细解答 (转载)

    此为详细装13版 转载自:https://vijos.org/discuss/56ff2e7617f3ca063af6a0a3 全文如下,未作修改,仅供围观,不代表个人观点: 你们怎么都在做网络流,不 ...

  5. POJ 2486 Apple Tree(树形DP)

    题目链接 树形DP很弱啊,开始看题,觉得貌似挺简单的,然后发现貌似还可以往回走...然后就不知道怎么做了... 看看了题解http://www.cnblogs.com/wuyiqi/archive/2 ...

  6. 获取枚举类型Description特性的描述信息

    C#中可以对枚举类型用Description特性描述. 如果需要对Description信息获取,那么可以定义一个扩展方法来实现.代码如下: public static class EnumExten ...

  7. JavaScript 导出Excel 代码

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  8. python深浅拷贝

    赋值引用,多变量使用同内存.对于可变数据对象,修改其中一个,影响其他.浅拷贝,只拷贝数据父对象,不拷贝其中子对象.深拷贝,拷贝对象及其子对象. 赋值引用:(修改,所有多影响) list1=[1,2,3 ...

  9. 【应用笔记】【AN002】通过iTool2基于MinGW平台读写EEPROM

    为了增加大家 DIY 的乐趣,XiaomaGee今天为大家只做了一篇使用iTool2内置的USB转I2C来读写EEPROM的方法和代码. iTool2简介 iTool2为银杏公司面向电子类研发工程师推 ...

  10. 【iHMI43 应用演示】之 modbus 协议(从机)通信演示

    ============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...