之前有写过用《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. HDU2222 Keywords Search(AC自动机模板)

    AC自动机是一种多模式匹配的算法.大概过程如下: 首先所有模式串构造一棵Trie树,Trie树上的每个非根结点都代表一个从根出发到该点路径的字符串. 然后每个结点都计算出其fail指针的值,这个fai ...

  2. BZOJ4032 : [HEOI2015]最短不公共子串

    第一问: 对B串建立SAM,暴力枚举A的每个子串,在SAM上走,若失配则可行. 第二问: 设g[i][j]表示B串的第i个字符之后最早出现的字符j的位置,暴力枚举A的每个子串,按照g贪心地走,若失配则 ...

  3. A Complete Guide to the <Picture> Element

    If you’ve ever struggled building responsive websites, this post is for you. It’s part of a series o ...

  4. GIT用法总结

    1 git中的几种文件状态 a 未被git跟踪的文件,即是没有使用git add添加到git索引的的文件:untracked; b 没有修改但是已经被git跟踪的文件,即是使用git add添加到gi ...

  5. Git Shell 安装版本

    #!/bin/sh v1.; do echo "Begin install Git $ver."; git reset --hard git clean -fdx git chec ...

  6. Apache Commons CLI 简介

    CLI 命令代码实现 命令行程序处理流程相对比较简单,主要流程为设定命令行参数 -> 解析输入参数 -> 使用输入的数据进行逻辑处理CLI 定义阶段 每一条命令行都必须定义一组参数,它们被 ...

  7. myeclipse 第一个web project

    创建一个java project. 不行...js文件是javascript代码的文件.应该放在web目录下...java文件是后台管理的程序代码.放在src目录下...不同的...   那是不是把所 ...

  8. RestSharp用法小结

    今天有空,小结一下RestSharp的用法. RestSharp内置了XML和JSON的反序列化(deserializers ). application/json – JsonDeserialize ...

  9. [转]Net 下采用GET/POST/SOAP方式动态调用WebService C#实现

    本文转自:http://www.cnblogs.com/splendidme/archive/2011/10/05/2199501.html 一直以来,我们都为动态调用WebService方法而烦恼. ...

  10. Transform-style和Perspective属性

    transform-style属性 transform-style属性是3D空间一个重要属性,指定嵌套元素如何在3D空间中呈现.他主要有两个属性值:flat和preserve-3d. transfor ...