全国各省市联动下拉列表(异步动态加载)

网页中下拉列表的省市联动 大家好,今天我和大家分享网页中下拉列表的省市联动。在我们平常填写一些信息时就会有省市联动,就是在第一个下拉列表中选择我们所在的省,后面一个下拉列表显示该省的所有城市。 既然是省市联动,我们就不能把数据直接写到网页上,我们应该通过第一个下拉列表的省动态生成该省的所有城市。我们可以先定义一个JSON对象表示省,在对象中定义一个数组存储一个省中的所有城市(这里的城市也是JSON对象),最后用数组存储所有的省。我们可以利用JavaScript在网页上面添加选项option。联动这块我们可以为第一个下拉列表添加一个 阅读详情
偶听到优快云写文章可以换C币,有了C币就可以换书,HOHO~~偶以后就不去博客园文章了^^
顺便也刚刚写的复制过来!

对于小数据可能体现不到分成小文件的优点,当遇上大量数据时,就知道好处了!

当有大量数据要加载到下拉列表,又是联动的,如根据省份加载地区市列表时,如果一次性将全部数据读取出来,可能会造成资源浪费,而且客户端响应也会相对缓慢。

解决大量数据联动下拉列表最好的最好办法当然是异步调用数据了!根据前一个地区的选择项加载下级地区下拉列表项。

常看要网友求全国省市联动菜单(真懒,只会求,就不会自己写一下-__-!!),偶就当一回好人,写了一个。

省市数据是从网上获取的,不敢保证数据的准确性和完整性,请网友们提出有误之处,大家共同完善之!

数据条目详情如下:
共有 34 个省(包括自治区、直辖市、特别行政区)
共有 409 个市(区)

数据以 XML 文件保存,全国各省份集合和为每一个省创建一个 XML 文件,这样小文件在网络传输节省时间和资源。每一省份名都带有拼音综写,但市名没有,有需要的朋友可以自己去完善之。所有 XML 文档放在名为 Regions 的文件夹,方便管理。

所有文档和 JavaScript 都没有压缩,实际使用建议压缩一下,如将 XML 文件所有换行符去掉,JavaScript 注释去掉,不必要的换行符去掉等等。

代码和 XML 文档下载请到: http://www.fs2you.com/files/a1d84897-a7c4-11dc-8dcd-00142218fc6e/

话不多了,show DEMO code!
<% @ Page Language = " C# "  AutoEventWireup = " true "   CodeFile = " Default.aspx.cs "  Inherits = " _Default "   %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > 无标题页 </ title >

</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
    
< h1 > http://www.code-studio.net </ h1 >
    
&copy;  LikeCode 2007 < br  />
    Creative Commons Licenses: 
< a  href ="http://creativecommons.org/licenses/by-nc-sa/3.0/" > Attribution-NonCommercial-ShareAlike </ a >< hr  />
        
< input  name ="hdnPrtRegion"  type ="hidden"   />
        
< input  name ="hdnChdRegion"  type ="hidden"   />
        
< select  id ="listPrtRegions"  onclick ="listPrtRegions_Click()" ></ select >   < select  id ="listChdRegions"  onclick ="setSelectedItem('listChdRegions','hdnChdRegion')" ></ select >
        
< asp:Button  ID ="Button1"  runat ="server"  Text ="偶就住在这里^^"  OnClick ="Button1_Click"   />
        
< br  />
        
< asp:Label  ID ="Label1"  runat ="server" ></ asp:Label ></ div >
    
</ form >
</ body >
< script  type ="text/javascript" >
var  xh;

// 创建 XMLHttpRequest
function  crtRqt(){
    
if (window.ActiveXObject)
        xh
= new  ActiveXObject( " Microsoft.XMLHTTP " );
    
else
        xh
= new  XMLHttpRequest();
}

// 减少代码冗余
function  g(sElmId){
    
return  document.getElementById(sElmId);
}

// 发送 Ajax 请求
function  sendAjaxRequest(sTargetUrl,oHdlFunc){
    crtRqt();
    xh.onreadystatechange
= oHdlFunc;
    xh.open(
" GET " ,sTargetUrl, true );
    xh.send(
null );
}

// 初始化省(自治区,特别行政区)
function  initPrtRegions(){
    
var  sTargetUrl = " Regions/regions.xml " ;
    sendAjaxRequest(sTargetUrl,hdlInitPrtRegions);
}

// AJAX 返回成功, 为列表增加选项
function  hdlInitPrtRegions(){
    
if (xh.readyState == 4 ){
        
if (xh.status == 200 ){
            
var  oList = g( " listPrtRegions " );
            
var  xmlDoc = xh.responseXML;
            
var  regionsName = xmlDoc.getElementsByTagName( " name " );
            
var  regionsShort = xmlDoc.getElementsByTagName( " short " );
            oList.options[
0 ] = new  Option( " 请选择 " , "" );
            
for ( var  i = 0 ;i != regionsName.length; ++ i){
                
var  oOpt = new  Option();
                oOpt.value
= regionsShort[i].childNodes[ 0 ].nodeValue;
                oOpt.text
= regionsName[i].childNodes[ 0 ].nodeValue;
                oList.options[i
+ 1 ] = oOpt;
            }
        }
    }
}

// 当改变省列表选择项时
function  listPrtRegions_Click(){
    
var  oList = g( " listPrtRegions " );
    
var  sSelectedValue = oList.options[oList.selectedIndex].value;
    setSelectedItem(
" listPrtRegions " , " hdnPrtRegion " );
    
if (sSelectedValue != null   &&  sSelectedValue != "" ){
        
var  sTargetUrl = " Regions/ " + sSelectedValue + " .xml " ;
        sendAjaxRequest(sTargetUrl,hdlListChdRegions);
    }
}

// 处理市列表
function  hdlListChdRegions(){
    
if (xh.readyState == 4 ){
        
if (xh.status == 200 ){
            
var  oList = g( " listChdRegions " );
            
var  xmlDoc = xh.responseXML;
            
var  regionsName = xmlDoc.getElementsByTagName( " region " );
            oList.options.length
= 0 ;
            oList.options[
0 ] = new  Option( " 请选择 " , "" );
            
for ( var  i = 0 ;i != regionsName.length; ++ i){
                
var  oOpt = new  Option();
                oOpt.text
= regionsName[i].childNodes[ 0 ].nodeValue;
                oList.options[i
+ 1 ] = oOpt;
            } 
        }
    }
}

// 保存已选择的地区名
function  setSelectedItem(sListName,sHdnName){
    
var  oList = g(sListName);
    
var  sSelectedText = oList.options[oList.selectedIndex].text;
    document.getElementsByName(sHdnName)[
0 ].value = sSelectedText
}

initPrtRegions();
</ script >
</ html >

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "您选择的是: " + Request.Form["hdnPrtRegion"].ToString() 
                        + " - " + Request.Form["hdnChdRegion"].ToString() + ".";
    }
}
UniApp动态级联选择器实战:异步加载与数据联动优化 本文深入探讨了在UniApp中实现动态级联选择器的核心方案与优化技巧。针对官方组件处理大数据量或异步数据时的不足,文章对比了改造官方组件、使用第三方UI库及插件市场组件等多种方案,并重点拆解了异步加载级联选择器的实现原理、事件流与数据联动机制,同时提供了请求防抖、数据缓存等关键性能优化策略,助力开发者构建高性能的级联选择体验。 阅读详情

相关推荐

Python web开发之后端返回的数据库数据实现js+Ajax下拉框联动

背景:在web开发中,有时候我们希望网页上的几个下拉列表框之间的数据有前后关联的关系,比如一个省市选择的系统,有两个下拉列表框,一个选择省份,一个选择城市,省份的列表中列举了全国所有的省,但是如果我们在选择城市的时候,下拉列表中传递的是全国所有的城市,那么我们要从全国所有的城市中取选择对应省份的城市,无异于大海捞针,所以希望可以实现如果我选择了山东省,那么城市列表中传递的城市都是山东省的城市。实现...

zoulonglong的博客 2825

HTML:js应用---下拉框联动(省市二级下拉框联动,含代码)

省市二级下拉框联动包括省份下拉框和市级下拉框。我们需要做的是加载出相应省份选项,并且点击一省份时市级下拉框显示该省份下的市,简单来说就是数组的存储与跳转。

weixin_62291385的博客 3779

vue3 - elementPlus全国城市列表选择器,提供省市区联动选择器、选择地址省市区级联、复选框tree树状省份全部列出来勾选,支持数据懒加载节点动态加载(附带全国省市区县乡镇村json数据)

vue3,element-plus,Element Plus级联和树形省市区,组件tree实现省市多级联动,vue3省市区三级联动选择器,选择地址,选择地区,选择多个省市区、批量选择城市,选择当前位置,省市区数据懒加载,动态加载城市数据,插件,地址选择器组件,城市选择器,省市区联动选择,Tree树组件列出省名称,树结构的城市列表,vue3省市区tree树形级联,全国省份列表,展开下级多级,vue3 element实现省市区选择联动,地区选择器,把所有省份都展示出来,选择多个城市,省市区三级联动选择器,省市区

✅ 精选推荐文章 4886

根据选择下拉框选择省份动态显示城市

//ajax获取城市 public function ajaxfindcity(){ $province =intval($_GET['province']); $citylist = $GLOBALS['db']->getAll(" select * from ".DB_PREFIX."area where parent_id=$province"); $str = "=请选

lengxin337的专栏 1万+

WPS2023 excel根据地区代码实现省市区三级联动下拉选

省市区三级联动

a1934977813的博客 5781

基于Echarts实现省级地图联动与动态数据加载实战

ECharts 作为百度开源的一款强大的数据可视化库,凭借其灵活的配置和丰富的可视化类型,已成为前端可视化开发中的首选工具。其中,地图功能作为其核心模块之一,广泛应用于区域数据分析、地理信息展示等场景。通过 ECharts 的地图功能,开发者可以轻松实现从全国到省、市、县的多级联动展示,支持自定义地理坐标、区域颜色映射以及交互事件绑定等高级功能。本章将带领读者了解 ECharts 地图功能的整体架构,包括 geo 组件、事件监听机制及地图数据格式,为后续深入开发打下坚实基础。

weixin_42510243的博客 805

全国各省市联动下拉列表(异步动态加载) (转载)

真郁闷,我的网站服务器居然挂子,55555,只好先发到园子里来了(当然要先发到自己网站再复制一份发到这里了^^) 当有大量数据要加载到下拉列表,又是联动的,如根据省份加载地区市列表时,如果一次性将全部数据读取出来,可能会造成资源浪费,而且客户端响应也会相对缓慢。 解决大量数据联动下拉列表最好的最好办法当然是异步调用数据了!根据前一个地区的选择项加载下级地区下拉列表项。 ...

weixin_30861797的博客 131

全国省市区三级联动下拉菜单设计与实现

htmltable {th, td {th {pre {简介:本项目涉及在网页开发中实现一个全国省市区三级联动的下拉菜单功能,使用JavaScript及DOM操作来提升用户体验,减少输入错误。通过异步请求动态加载数据,并用CSS进行样式美化,实现省市县的选择。该功能常见于在线表单填写,如注册、登录和地址输入。开发者需要掌握HTML、CSS、JavaScript及可能的前端框架,如jQuery、Vue.js或React.js。

weixin_35879493的博客 752

html省市县三级联动,JS省市县三级联动

1.遍历省 在省的一列追加遍历出来的省2.遍历市2.1 根据省的索引来选择对应的市2.2 清空上一回选择的市和县2.3 如果省的索引大于 0 ,使其为 0 ,才能正常的遍历市,否则不能正常匹配2.4 在市的一...写个Ajax三级联动实例,用的最新的全国省市县mysql数据。这里只说一下思路,具体请看源码。首先看index.php,这是一个省份列表像平时购物选择地址时一样,通过选择的省动态加载城市...

weixin_29081101的博客 716

实现全国省市区三级联动的Ajax无刷新交互系统

在三级联动系统中,库如jQuery可以被用来封装一些通用的DOM操作,简化开发。在使用这些库的时候,需要遵循最佳实践,例如避免全局作用域的污染,使用模块化的方式来组织代码。

weixin_42515392的博客 1206

ECharts实现全国-省-市三级联动地图完整Demo与实战解析

ECharts作为百度开源的JavaScript数据可视化库,凭借其强大的渲染能力与灵活的配置系统,在地理信息可视化领域占据重要地位。其核心优势在于对geo组件与series-map系列的深度支持,能够精准映射行政区划边界并实现区域识别。通过内置的坐标系转换机制与拓扑结构解析,ECharts可高效处理多层级地理数据,为全国-省-市三级联动提供稳定基础。本章将深入剖析其地图渲染原理与区域匹配逻辑,为后续GeoJSON数据集成与交互设计奠定理论根基。

weixin_34620658的博客 972

layui树形异步:动态加载子树节点

> 还在为海量数据树形组件加载缓慢而烦恼?layui树组件的异步加载功能让你的应用性能飞升! ## 痛点场景:大数据量树形结构的性能瓶颈 在实际Web应用开发中,我们经常遇到这样的场景: - **组织架构树**:成千上万的部门和员工数据 - **商品分类树**:海量商品分类层级结构 - **地区选择器**:全国省市区县四级联动 - **权限管理树**:复杂的菜单权限层级 传统的一次性加...

gitblog_00913的博客 825

包含全国各地下拉框选择的javaScript脚本(精确至县区)

包含全国各地所有省市县的名称,三层下拉框联动选择,内附demo以及快速配置方法....

php ajax联动下拉列表,jQuery ajax+PHP实现的级联下拉列表框功能示例

本文实例讲述了jQuery ajax+PHP实现的级联下拉列表框功能。分享给大家供大家参考,具体如下:一 代码fun.js:// JavaScript Document$(document).ready(function(){$.get("returnpc.php?flag=p", null, function(data){ //向服务器发送GET请求,获取省份的值,并将结果追加到省份下拉列表中$...

weixin_30158471的博客 324

省市下拉列表的JS联动实现

利用Javascript技术实现省市下拉列表的联动。

原生JavaScript实现动态省市县三级联动下拉框菜单实例代码

像平时购物选择地址时一样,通过选择的省动态加载城市列表,通过选择的城市动态加载县区列表,从而可以实现省市县的三级联动,下面使用原生的JavaScript来实现这个功能: 先给大家展示下测试结果: 未做任何选择时: 选择时: 代码如下所示: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>三级联动测试</title> [removed][removed] [removed] //用来获得option元素中s

下一篇: 搜索建议(Searching Suggestion),已布置好样式
LikeCode
博客等级 码龄20年 194粉丝 2原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值