Rumah > hujung hadapan web > tutorial js > ajax不刷新的情况下省市县三级联动

ajax不刷新的情况下省市县三级联动

php中世界最好的语言
Lepaskan: 2018-04-04 15:15:56
asal
1390 orang telah melayarinya

这次给大家带来ajax不刷新的情况下省市县三级联动,ajax不刷新实现省市县三级联动的注意事项有哪些,下面就是实战案例,一起来看一下。

本文实例为大家分享了ajax实现无刷新省市县三级联动的具体代码,供大家参考,具体内容如下

效果图:

实现代码:

1、html:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

<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>

Salin selepas log masuk

2、WebService1.asmx

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

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;

    }

  }

}

Salin selepas log masuk

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

1

2

3

4

5

6

7

8

9

10

//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);

    }

Salin selepas log masuk

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

//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;

    }

Salin selepas log masuk

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

AJAX实现显示页面后才加载

AJAX怎么实现异步刷新和局部刷新

Atas ialah kandungan terperinci ajax不刷新的情况下省市县三级联动. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan