js通过AJAX获取后台数据渲染到页面

103 篇文章 0 订阅
97 篇文章 0 订阅

1.GET

html部分

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>AJAX发送GET请求并传递参数</title>
</head>
<body>
  <ul id="list"></ul>

  <script>
    // 获取ul的id
    var listElement = document.getElementById('list');
    // 发送ajax请求获取列表数据呈现在也页面
    // ====================================
    var xhr = new XMLHttpRequest();
    // 打开网址
    xhr.open('GET','users.php');
    // 敲回车等响应
    xhr.send();

    // 接收请求
    xhr.onreadystatechange = function(){
      //判断请求题是不是我们想要的数据
      if(this.readyState !== 4) return;
      // 获取传过来的json数据
      var data = JSON.parse(this.responseText);
      //data ==> 数据

      // for循环创建动态li
      for(var i=0; i<data.length; i++ ){
        // 创建动态li标签
        var liElement = document.createElement('li');
        // 给li添加数据
        liElement.innerHTML = data[i].name;
        // 给li添加id
        liElement.id = data[i].id;

        // 把li追加到ul里面去
        listElement.appendChild(liElement);

        // 获取点击元素的数据
        liElement.addEventListener('click',function(){
          var xhr2 = new XMLHttpRequest();
          // 打开文件
          xhr2.open('GET','users.php?id='+ this.id);  //问号传参
          // 敲回车等响应
          xhr2.send();
          console.log(this.id);
          xhr2.onreadystatechange = function(){
            //判断请求题是不是我们想要的数据
              if(this.readyState !== 4) return;
              // 获取传过来的json数据
              var data2 = JSON.parse(this.responseText);
              //data ==> 数据
              console.log(data2);
          };
        });  
      }
    }
  </script>
</body>
</html>

php部分

<?php
header('Content-Type: application/json');
/**
 * 返回的响应就是一个 JSON 内容(返回的就是数据)
 * 对于返回数据的地址一般我们称之为接口(形式上是 Web 形式)
 */

// `/users.php?id=1` => id 为 1 的用户信息

$data = array(
  array(
    'id' => 1,
    'name' => '张三',
    'age' => 18
  ),
  array(
    'id' => 2,
    'name' => '李四',
    'age' => 20
  ),
  array(
    'id' => 3,
    'name' => '二傻子',
    'age' => 18
  ),
  array(
    'id' => 4,
    'name' => '三愣子',
    'age' => 19
  )
);
if (empty($_GET['id'])) {
  // 没有 ID 获取全部
  // 因为 HTTP 中约定报文的内容就是字符串,而我们需要传递给客户端的信息是一个有结构的数据
  // 这种情况下我们一般采用 JSON 作为数据格式
  $json = json_encode($data); // => [{"id":1,"name":"张三"},{...}]
  echo $json;
} else {
  // 传递了 ID 只获取一条
  foreach ($data as $item) {
    if ($item['id'] != $_GET['id']) continue;
    $json = json_encode($item); // => [{"id":1,"name":"张三"},{...}]
    echo $json;
  }
}

2.POST

html部分

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>AJAX发送POST请求</title>
  <style>
    #loading {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background-color: #555;
      opacity: .5;
      text-align: center;
      line-height: 300px;
    }

    #loading::after {
      content: '加载中...';
      color : #fff;
    }
  </style>
</head>
<body>
  <div id="loading"></div>
  <table border="1">
    <tr>
      <td>用户名</td>
      <td><input type="text" id="username"></td>
    </tr>
    <tr>
      <td>密码</td>
      <td><input type="password" id="password"></td>
    </tr>
    <tr>
      <td></td>
      <td><button id="btn">登录</button></td>
    </tr>
  </table>
  <script>

    var btn = document.getElementById('btn')
    // 1. 获取界面上的元素 value
    var txtUsername = document.getElementById('username')
    var txtPassword = document.getElementById('password')
    var loading = document.getElementById('loading')

    // 注册点击事件
    btn.onclick = function() {
      // 显示正在加载中
      loading.style.display = 'block';
      // 获取文本框内的value值
      var username = txtUsername.value;
      var password = txtPassword.value;

      // 发送post事件
      var xhr =new XMLHttpRequest();
      // 获取浏览器
      xhr.open('POST','login.php');

      // post响应操作
      xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      // xhr.send('username=' + username + '&password=' + password); 方法1;
      xhr.send(`username=${username}&password=${password}`); //方法二

      // 获取服务器反馈
      xhr.onreadystatechange = function(){
        // 判断接收的数据
        if(this.readyState !== 4) return;
        //获取提示文本
        alert(this.responseText);
        // 隐藏加载中
        loading.style.display = 'none';
      }
    }
  </script>
</body>
</html>

php部分

<?php 
// 校验用户输入的用户名和密码
if(empty($_POST['username']) && empty($_POST['password']) ){
  exit('请输入用户名或密码');
}

$username = $_POST['username'];
$password = $_POST['password'];

// 校验密码是否正确
if($username === 'zhangs' && $password === '123456' ){
  exit('登录成功');
}

exit('请输入正确的用户名或密码');
?>
  • 5
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当使用AJAX后台获取数据之后,我们需要将获取到的数据渲染前端页面上,以便用户可以看到数据的呈现。 首先,在前端需要准备好一个预留数据呈现的区域,比如一个<div>标签或者<ul>/<ol>列表标签。也可以通过jQuery等前端框架提供的选择器,在DOM中动态创建元素来呈现数据。 其次,我们需要将从后台获取到的数据进行一定的格式转换,以便可以在前端页面上呈现。比如,从后台获取到的数据可能是JSON格式,需要通过JSON.parse()方法将其解析为JS对象后再进行操作。 然后,我们可以通过DOM操作的API,将解析后的数据渲染前端页面上。比如,通过innerText、innerHTML等属性设置文字内容,图片链接等属性设置图片、链接等内容。 最后,我们需要注意数据呈现的方式和样式。可以用CSS样式在前端页面中设置数据呈现方式和样式。也可以使用前端框架中提供的组件或者已有样式库进行快速布局和样式设置。最后,我们还需要对数据呈现区域进行优化和美化,以提升用户体验。 总之,通过以上方式,我们能够在前端页面上直观清晰、美观呈现后台获取数据,实现用户与网站的交互和数据交流。 ### 回答2: 在使用Ajax后台获取数据后,我们需要将数据渲染页面上,为此,我们通常会使用DOM操作来完成。一个典型的流程是: 1. 创建DOM元素:可以使用JavaScript中的createElement()方法来创建一个新的DOM元素,或者innerHTML来在已有元素中插入HTML内容。 2. 获取数据:在Ajax请求成功后,我们可以通过回调函数中的responseText属性来获取后台返回的数据。 3. 解析数据:对于返回的数据,我们通常会将其解析成JSON格式,这可以使用JSON.parse()方法实现。 4. 遍历数据:对于解析后的JSON数据,我们可以使用JavaScript的for-in循环来遍历其中的属性和值。 5. 填充数据:在遍历数据的过程中,可以创建DOM元素并将数据填充到元素中。然后使用appendChild()方法将元素添加到页面中。 6. 显示数据:最后,我们需要将数据显示在页面上,可以使用innerHTML来将数据渲染到指定的DOM元素中。 需要注意的是,由于Ajax是异步的,因此需要使用回调函数来处理从后台获取到的数据。在获取数据后,并非所有的数据都需要进行渲染,可以根据具体需求来选择需要渲染数据。此外,为了提高用户体验,我们也需要对数据渲染进行优化,比如分页、懒加载等。 ### 回答3: 当使用Ajax后端获取数据后,我们需要将获取到的数据渲染页面上,以便用户可以看到数据。这个过程一般有以下几个步骤。 1. 解析数据 数据一般是以JSON格式返回,我们需要将其解析成JavaScript对象。可以使用JSON.parse()方法将JSON数据转换为JavaScript对象,或使用jQuery提供的$.parseJSON()方法进行转换。 2. 构造HTML结构 接下来,我们需要根据获取到的数据构造HTML结构。一种常见的方式是使用jQuery的模板引擎,例如Handlebars.js、Underscore.js等。模板引擎可以将数据和HTML结构分离,避免在JavaScript代码中写大量的HTML字符串。 3. 插入到页面 完成HTML结构后,我们需要将其插入到页面中。可以使用jQuery提供的方法,例如.html()、.append()等。其中.html()方法可以将HTML代码直接替换掉指定元素的内容,而.append()方法则可以在指定元素的末尾添加HTML代码。 4. 数据更新 最后,我们需要在Ajax请求成功后更新数据。这可以通过将请求成功的回调函数传递给$.ajax()方法的success参数来实现。在回调函数中,我们可以重新获取数据,构造HTML结构,然后将其插入到页面中。 总之,Ajax后台获取数据后,我们需要将数据解析出来,构造HTML结构,插入到页面中,并在数据更新时进行相应的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值