ajax+ json 显示学生信息小案例

ajax + json 显示学生信息小案例

结果展示,实现下面功能,点击查询学生信息,显示学生的信息。
在这里插入图片描述

1 先了解什么是ajax 和 json

1.1 ajax

简单的来说,ajax就是局部动态刷新

例如网页上的新闻,点击按钮可以动态的的刷新新闻,而网页上的其他信息不变

1.2 使用ajax

使用ajax有三个步骤

步骤一:创建对象

var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

步骤二:发出请求

xmlhttp.open("GET","demo_get.asp",true);
xmlhttp.send();

步骤三:接受响应

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }

1.3 ajax小案例

1 新建一个文件1.txt,随便写文字

在这里插入图片描述

2 编写代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
      <button  onclick="f()">点击刷新</button>
      <p id="d">使用ajax前的数据</p>
</body>
</html>
<script>
    //需求:通过点击button,发送异步(ajax)请求
    function f(){
        //创建对象
        var xmlhttp;
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }

        //发送请求
        xmlhttp.open("GET","1.txt",true);
        xmlhttp.send();

        //接收响应(js代码)
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                document.getElementById("d").innerHTML=xmlhttp.responseText;
            }
        }


    }
</script>

3 结果
在这里插入图片描述

2 json

2.1 什么是json

JSON 是存储和交换文本信息的语法,简单的说json就是传输数据的一种格式。
它能存储数组和对象,因此不需要你去手动的创建对象,易于程序的维护

2.2 基本语法

存储对象就用 { } ,存储数组就用 [ ]

2.3 实例

在这里插入图片描述

3 显示学生信息

现在,我们了解了ajax和json,我们回到开头,完成学生信息的显示

3.1分析

1 首先,需要使用ajax和json技术
2 需要创建一个数组,数组里面有4个对象
3 前端页面写一个表格寻出数据,还有几个按钮绑定事件刷新
4 循环遍历数组里面的对象
5 点击按钮,实现显示数组信息功能

3.2 代码

3.2.1 json文件(文件名需与html引用一致,这里面文件名为 students.json)

{
  "students": [
    {
      "id": 1,
      "name": "张三"
    },
    {
      "id": 2,
      "name": "李四"
    },
    {
      "id": 3,
      "name": "王五"
    },
    {
      "id": 4,
      "name": "赵六"
    },
    {
      "id": 5,
      "name": "郑七"
    }
  ]
}

(注:students.json文件中其实可以将"students":[ ]去掉,但是如果此文件中还有其他数据,比如教师数据的话,明显就不对了,所以我将最后的数据外面定义了一个学生数组,学生数组里面保存了多个学生数据,这样就比较合理了)
这里面的json文件有多种写法来保存数据,只要遵守json格式就可以。

3.2.2 html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
        <div style="text-align: center">
      <button  onclick="f()" >查询学生信息</button>
        </div>
          <table border="1" width="400px" align="center">
              <tr>
                  <td>学号</td>
                  <td>姓名</td>
              </tr>
              <tbody id="d"></tbody>
          </table>

</body>
</html>
<script>
    //需求:通过点击button,发送异步(ajax)请求
    function f(){
        //创建对象
        var xmlhttp;
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }

        //发送请求
        //students.json需与上面保持一致
        xmlhttp.open("GET","students.json",true);
        xmlhttp.send();

        //接收响应(js代码)
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                var  data = xmlhttp.responseText
                var json = JSON.parse(data)
                var html = "";
                for(var i = 0; i < json.students.length; i ++){
                    html += "<tr><td>" + json.students[i].id + "</td><td>" + json.students[i].name + "</td></tr>"
                    document.getElementById("d").innerHTML = html;

                }
            }
        }
    }

</script>

3.3 代码解惑

JavaScript 部分包括一个 f() 函数,它是按钮的点击事件处理程序。当用户点击 “查询学生信息” 按钮时,f() 函数会执行以下操作:

1 创建 XMLHttpRequest 对象
2 发送 GET 请求到 students.json 文件
3 处理 AJAX 响应

AJAX 响应处理的具体步骤如下:

1 从响应中获取 JSON 数据
2 将 JSON 数据解析成 JavaScript 对象
3 遍历 JavaScript 对象中的学生信息,并将其转换成 HTML 表格行(一行表示一个学生)
4 将 HTML 表格插入到页面中对应的 元素中

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值