zoukankan      html  css  js  c++  java
  • 异步请求(解析json数据)

    将 json 数据显示到页面
      需要借助 js 对 dom 的操作功能将数据生成到 html 页面

    Demo: 查询一个雇员的信息
    html:

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6     <meta content="utf-8">
     7     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     8     <title>Insert title here</title>
     9     <base href="/MvcPro/"/>
    10     <!--表示样式可以根据设备的大小自适应-->
    11     <meta name="viewport" content="width=divce-width,initial-scale=1">
    12     <!-- 导入 jq 的 js 文件 -->
    13     <script src="js/jquery.min.js"></script>
    14     <!-- 导入表单验证的开发包 -->
    15     <script type="text/javascript" src="js/jquery.validate.min.js"></script>
    16     <!-- 导入表单验证 -->
    17     <script src="pages/verification.js"></script>
    18     <!--导入bootstrap的js-->
    19     <script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
    20     <!--导入bootstrap的css文件-->
    21     <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css">
    22     <!-- 导入自定义js文件 -->
    23     <script src="pages/index.js"></script>
    24 </head>
    25 <body>
    26     <a href="javascript:void(0)">获取一个雇员信息</a><br>
    27     <a href="javascript:void(0)">获取多个雇员信息</a>
    28     <div class="container">
    29         <div class="row">
    30             <div class="col-md-8">
    31                 <table class="table table-bordered table-striped table-condensed table-hover">
    32                     <tr>
    33                         <th>编号</th><th>姓名</th><th>职位</th><th>薪资</th><th>领导编号</th><th>入职日期</th><th>佣金</th><th>部门编号</th><th>操作</th>
    34                     </tr>
    35                 </table>
    36             </div>
    37         </div>
    38     </div>
    39 </body>
    40 </html>

    js

    $(function(){
        var emp;
        //为超链接绑定事件
        $("a:eq(0)").click(function(){
            $("table tr:eq(1)").remove();
            //发送异步请求
            $.ajax({
                type:"post",
                url:"emp/getOne",
                data:"id=7788",
                dataType:"json",
                async:false,
                success:function(data){
                    //取得表格元素对象
                    var table=$("table");
                    table.append("<tr>"+
                        "<td>"+data.empno+"</td>"+
                        "<td>"+data.ename+"</td>"+
                        "<td>"+data.job+"</td>"+
                        "<td>"+data.sal+"</td>"+
                        "<td>"+data.mgr+"</td>"+
                        "<td>"+data.hiredate+"</td>"+
                        "<td>"+data.comm+"</td>"+
                        "<td>"+data.deptno+"</td>"+
                        "<td><button class='btn btn-success btn-sx'>删除</button></td>"+
                    "</tr>")
                }
            })
        })
    })

    Demo: 解析 List 类型的 json 数据

    $(function(){
        $("a:eq(1)").click(function(){
            var table=$("table");
            $("table tr:gt(0)").remove();
            $.ajax({
                type:"post",
                url:"emp/jsonList",
                data:"cp=1&ls=10&kw=A",
                dataType:"json",
                success:function(data){
                    for(var i=0;i<data.length;i++){
                        $("table").append("<tr>"+
                            "<td>"+data[i].empno+"</td>"+
                            "<td>"+data[i].ename+"</td>"+
                            "<td>"+data[i].job+"</td>"+
                            "<td>"+data[i].sal+"</td>"+
                            "<td>"+data[i].mgr+"</td>"+
                            "<td>"+data[i].hiredate+"</td>"+
                            "<td>"+data[i].comm+"</td>"+
                            "<td>"+data[i].deptno+"</td>"+
                            "<td><button class='btn btn-success btn-sx'>删除</button></td>"+
                        "</tr>")
                    }
                }
            })
        })
    })

    each循环:

    $.each(data,function(index){
        $("table").append("<tr>"+
            "<td>"+data[i].empno+"</td>"+
            "<td>"+data[i].ename+"</td>"+
            "<td>"+data[i].job+"</td>"+
            "<td>"+data[i].sal+"</td>"+
            "<td>"+data[i].mgr+"</td>"+
            "<td>"+data[i].hiredate+"</td>"+
            "<td>"+data[i].comm+"</td>"+
            "<td>"+data[i].deptno+"</td>"+
            "<td><button class='btn btn-success btn-sx'>删除</button></td>"+
        "</tr>")
    })

    Demo: 解析 Map 类型的 json 数据
    jsp:

    <body>
        <a href="javascript:void(0)">获取一个雇员信息</a><br>
        <a href="javascript:void(0)">获取多个雇员信息</a>
        <div class="container">
            <div class="row">
                <div id="div1" class="col-md-8">
                </div>
            </div>
        </div>
    </body>

    js:

     1 $(function(){
     2     $("a:eq(1)").click(function(){
     3         var table=$("table");
     4         $("table tr:gt(0)").remove();
     5         $.ajax({
     6             type:"post",
     7             url:"emp/jsonMap",
     8             data:"cp=1&ls=10&kw=",
     9             dataType:"json",
    10             success:function(data){
    11                 $("table").remove();
    12                 $("h1").remove();
    13                 //迭代map集合
    14                 $.each(data,function(key,value){
    15                     //过滤掉不是value值不是集合的键值对
    16                     if(key!='allPages'&&key!='count'&&key!='cp'&&key!='ls'&&key!='kw'){
    17                         //生成职位信息
    18                         $("#div1").append("<h1>"+key+"</h1>");
    19                         //生成每个表格的表头信息(每个表格保存一种职位的雇员信息)
    20                         $("#div1").append(
    21                                 "<table class='table table-bordered table-striped table-condensed table-hover' id='"+key+"' border=1>"+
    22                                     "<tr>"+
    23                                         "<th>编号</th><th>姓名</th><th>职位</th><th>薪资</th><th>领导编号</th><th>入职日期</th><th>佣金</th><th>部门编号</th><th>操作</th>"+
    24                                     "</tr>"+
    25                                 "</table>"
    26                         );
    27                         //对当前职位的雇员列表进行迭代
    28                         //value: 当前职位的雇员集合
    29                         //index: 动态产生的下标, 从0开始
    30                         $.each(value,function(index){
    31                             $("#"+key).append("<tr>"+
    32                                 "<td>"+value[index].empno+"</td>"+
    33                                 "<td>"+value[index].ename+"</td>"+
    34                                 "<td>"+value[index].job+"</td>"+
    35                                 "<td>"+value[index].sal+"</td>"+
    36                                 "<td>"+value[index].mgr+"</td>"+
    37                                 "<td>"+value[index].hiredate+"</td>"+
    38                                 "<td>"+value[index].comm+"</td>"+
    39                                 "<td>"+value[index].deptno+"</td>"+
    40                                 "<td><button class='btn btn-success btn-sx'>删除</button></td>"+
    41                             "</tr>")
    42                         })
    43                     }
    44                 })
    45             }
    46         })
    47     })
    48 })
  • 相关阅读:
    中金所金融业务知识学习笔记(含股指期货、股指期权、国债期货)
    人工智能中小样本问题相关的系列模型演变及学习笔记(四):知识蒸馏、增量学习
    人工智能中小样本问题相关的系列模型演变及学习笔记(三):迁移学习、深度迁移学习
    人工智能中小样本问题相关的系列模型演变及学习笔记(二):生成对抗网络 GAN
    人工智能中小样本问题相关的系列模型演变及学习笔记(一):元学习、小样本学习
    行业知识图谱的构建及应用
    Verilog代码和FPGA硬件的映射关系(一)
    FPGA内部硬件结构简介
    Altera的Cyclone系列器件命名规则
    学会使用Hdlbits网页版Verilog代码仿真验证平台
  • 原文地址:https://www.cnblogs.com/yslf/p/10846515.html
Copyright © 2011-2022 走看看