首頁 > web前端 > js教程 > ajax不刷新的情況下省市縣三級聯動

ajax不刷新的情況下省市縣三級聯動

php中世界最好的语言
發布: 2018-04-04 15:15:56
原創
1262 人瀏覽過

這次帶給大家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 += &#39;<option value=&#39; + result.d[i].provinceID + &#39;>';
            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 += &#39;<option value=&#39; + result.d[i].cityID + &#39;>';
              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 += &#39;<option value=&#39; + result.d[i].areaID + &#39;>';
              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;
    }
登入後複製
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

AJAX實現顯示頁面後才載入

#AJAX怎麼實作非同步刷新和局部刷新

以上是ajax不刷新的情況下省市縣三級聯動的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板