文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ajax如何实现无刷新省市县三级联动

2023-06-08 08:33

关注

这篇文章主要介绍“ajax如何实现无刷新省市县三级联动”,在日常操作中,相信很多人在ajax如何实现无刷新省市县三级联动问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ajax如何实现无刷新省市县三级联动”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

效果图:

ajax如何实现无刷新省市县三级联动

实现代码:

1、html:

<html><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>    <input id="Text1" type="text" />   </td>  </tr>  <tr>   <td>    密码   </td>   <td>    <input id="Text2" type="text" />   </td>  </tr>  <tr>   <td>    确认密码   </td>   <td>    <input id="Text3" type="text" />   </td>  </tr>  <tr>   <td>    邮箱   </td>   <td>    <input id="Text4" type="text" />   </td>  </tr>  <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>

2、WebService1.asmx

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;namespace 省市县三级联动{ /// <summary> /// WebService1 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 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 List<Model.province> GetProvince()  {   BLL.province bpro = new BLL.province();   List<Model.province> list = bpro.GetListModel();   return list;  }  [WebMethod]  public List<Model.city> GetCItyByPro(string proid)  {   BLL.city bcity = new BLL.city();   List<Model.city> list = bcity.GetListModel("father='" + proid + "'");   return list;  }  [WebMethod]  public List<Model.area> GetAreaByCity(string cityid)  {   BLL.area barea = new BLL.area();   List<Model.area> list = barea.GetListModel("father='" + cityid + "'");   return list;  } }}

在三层的Bll层中的city.cs和area.cs中分别添加以下属性

//city.cs: public List<Model.city> GetListModel(string strsql)  {   return dal.GetListModel(strsql);  }//area.cs:  public List<Model.area> GetListModel(string strsql)  {   return dal.GetListModel(strsql);  }

在三层的DAL层中的city.cs和area.cs中分别添加以下方法

//city.cs:public System.Collections.Generic.List<Model.city> GetListModel(string strsql)  {   System.Collections.Generic.List<Model.city> list = new System.Collections.Generic.List<Model.city>();   DataTable dt = GetList(strsql).Tables[0];   foreach (DataRow row in dt.Rows)   {    Model.city mcity = new Model.city();    mcity.id = Convert.ToInt32(row["id"]);    mcity.cityID = row["cityID"].ToString();    mcity.cityname = row["cityname"].ToString();    list.Add(mcity);   }   return list;  }//area.cs: public System.Collections.Generic.List<Model.area> GetListModel(string strsql)  {   DataTable dt = GetList(strsql).Tables[0];   System.Collections.Generic.List<Model.area> list = new System.Collections.Generic.List<Model.area>();   foreach (DataRow row in dt.Rows)   {    Model.area marea = new Model.area()    {     id = Convert.ToInt32(row["id"]),     areaID = row["areaID"].ToString(),     areaname = row["areaname"].ToString()    };    list.Add(marea);   }   return list;  }

到此,关于“ajax如何实现无刷新省市县三级联动”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯