• ajax连接数据库加载+三级联动


    ajax连接数据库加载

    ajax是指一种创建交互式网页应用的网页开发技术。

    AJAX = 异步JS和XML(标准通用标记语言的子集)。

    AJAX 是一种用于创建快速动态网页的技术。
     
    通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
     
    传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。
     
    优点:是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
      不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。
     
    1.创建AJAX 
    点击按钮加载数据。
    .新建一个LINQ to SQL 类,将User表和Nation表拉到类中
    创建一个 web窗体 或者纯html界面 +一个一般处理程序LoadUserajax.ashx

    (1)body内代码

    复制代码
     1  <table id="tb1" style=" text-align: center;  100%;">
     2     <thead>
     3         <tr style="color: #ff6a00;">
     4             <td>用户名</td>
     5             <td>密码</td>
     6             <td>昵称</td>
     7             <td>性别</td>
     8             <td>生日</td>
     9             <td>年龄</td>
    10             <td>民族</td>
    11         </tr>
    12     </thead>
    13     <tbody>
    14     </tbody>
    15     </table>
    16     <input type="button" value="加载" id="btn1" />
    复制代码

    (2)js代码部分

    复制代码
     1 <script>
     2     //点击加载按钮
     3     $("#btn1").click(function () {
     4         //编写ajax语句,将数据提交到某个服务端去
     5         $.ajax({
     6             url: "ajax/LoadUserajax.ashx",//将数据要提交到哪个服务端
     7             data: {},//将什么数据提交到服务端去,{}内基本格式为"key":"要传的数据"
     8             type: "post",//用什么样的方式将数据提交过去
     9             dataType: "json",//返回一个什么样的数据类型
    10             //请求完成
    11             success: function (data) {
    12                 $("#tb1 tbody").empty();//清空tbody
    13                 for (i in data) {
    14                     var str = "<tr style="">";
    15                     str += "<td>" + data[i].username + "</td>";
    16                     str += "<td>" + data[i].password + "</td>";
    17                     str += "<td>" + data[i].nickname + "</td>";
    18                     str += "<td>" + data[i].sex + "</td>";
    19                     str += "<td>" + data[i].birthday + "</td>";
    20                     str += "<td>" + data[i].age + "</td>";
    21                     str += "<td>" + data[i].nation + "</td>";
    22                     str += "</tr>";
    23                     $("#tb1 tbody").append(str);
    24                 }
    25             },//success
    26             //请求失败
    27             error: function () {
    28                 alert('服务器连接失败!!!');
    29             }
    30         });//ajax
    31     });//btn1.click
    32 </script>
    复制代码

    (3)userajax.ashx内代码

    复制代码
     1 <%@ WebHandler Language="C#" Class="userajax" %>
     2 
     3 using System;
     4 using System.Web;
     5 using System.Collections;
     6 using System.Collections.Generic;
     7 using System.Linq;
     8 using System.Text;
     9 
    10 public class userajax : IHttpHandler
    11 {
    12 
    13     public void ProcessRequest(HttpContext context)
    14     {
    15         //有数据接收时,用context.Request["key"];将ajax传过来的数据取出来
    16         int count = 0;//前面是否有数据
    17         string end = "[";//创建json对象,设置默认值,基本格式为{"key":"value","":"","":""},有多条时用[]括住,每条之间用,隔开
    18         using (WebDataContext con = new WebDataContext())
    19         {
    20             List<User> ulist = con.User.ToList();
    21             foreach (User u in ulist) {
    22                 //前面有数据
    23                 if (count>0) {
    24                     end += ",";
    25                 }
    26                 end += "{"username":""+u.UserName+"","password": ""+u.PassWord+"","nicknane":""+u.NickName+"","sex": ""+u.SexStr+"","birthday": ""+u.BirStr+"","age":""+u.Age+"","nation":""+u.NationName+"" }";
    27                 count++;
    28             }
    29         }
    30         end += "]";
    31             context.Response.Write(end);
    32             context.Response.End();
    33      
    34     }
    35 
    36     public bool IsReusable
    37     {
    38         get
    39         {
    40             return false;
    41         }
    42     }
    43 
    44 }
    复制代码
     
    2.json与xml
     

    xml和json的作用:在不同语言之间进行数据传递

    最早使用的数据类型是 xml
    劣势:
    1、代码量较大
    2、结构不清晰
    3、解析起来麻烦

    现在使用的数据类型是 json
    优势:
    1、结构清晰
    2、类似于面向对象的解析方式

    json基本格式:
    {"key":"value","":"","":""}

    {"username":"","password":"","nickname":"","sex":"","birthday":"","nation":""}

     
    -------------------------------------------------------
    三级联动 不刷新界面
    1.创建三个 DropDownList
    2.js
    bind1($("#DropDownList1"), '0001', '1');
        function bind1(drop, pc, key) {
            $.ajax({
                url: "ajax/china.ashx",
                data: { "pcode": pc },
                type: "post",
                dataType: "json",
                success: function (data) {
                    drop.empty();
                    for (i in data) {
                        var str = "<option value="" + data[i].code + "">" + data[i].name + "</option>";
                        drop.append(str);
                    }
                    if (key == "1")
                        {
                        bind1($("#DropDownList2"), $("#DropDownList1").val(), '2');
                    }
                    if (key == "2") {
                        bind1($("#DropDownList3"), $("#DropDownList2").val(), '3');
                    }
    
                },
                error: function () {
                    alert('服务器连接失败!');
                }
            });
        }
        $("#DropDownList1").change(function () {
            bind1($("#DropDownList2"), $(this).val(), '2');
        });
    
        $("#DropDownList2").change(function () {
            bind1($("#DropDownList3"), $(this).val(), '3');
        });
    
    
    
    

    3.一般处理程序

    using System;
    using System.Web;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    public class china : IHttpHandler {
        
        public void ProcessRequest (HttpContext context) {
            string pcode = context.Request["pcode"];
            StringBuilder end = new StringBuilder();
            int count = 0;
    
            end.Append("[");
            using (mydbDataContext con = new mydbDataContext())
            {
                List<ChinaStates> clist = con.ChinaStates.Where(r => r.ParentAreaCode == pcode).ToList();
    
                foreach (ChinaStates c in clist)
                {
                    if (count > 0)
                        end.Append(",");
                    
                    end.Append("{"code":""+c.AreaCode+"","name":""+c.AreaName+""}");
                    count++;
                }
            }
    
            end.Append("]");
            context.Response.Write(end);
            context.Response.End();
        }
     
        public bool IsReusable {
            get {
                return false;
            }
        }
    
    }
    
    
    
    
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    python 日期封装
    uiautomator2 使用注意的地方
    django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
    解决 pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 61] Conne
    mitmproxy 使用mitmdump 过滤请求
    -bash: findstr: command not found 问题解决
    Mac xlwings aem.aemsend.EventError: Command failed: The user has declined permission. (-1743)
    Jenkins 使用python进行调度,并下载apphost上的安装包
    微信公众号爬虫--历史文章
    demo_23 搜索历史数据持久化
  • 原文地址:https://www.cnblogs.com/power8023/p/6060301.html
Copyright © 2020-2023  润新知