php+ajax+json 详解及实例代码

yizhihongxing

下面是关于PHP+AJAX+JSON的详细讲解及实例代码的攻略。

PHP+AJAX+JSON 详解

什么是AJAX

AJAX全称为Asynchronons JavaScript and XML,是基于前端技术的一种异步交互方式。在AJAX出现之前,前端页面与服务端的交互方式主要是通过页面跳转、表单提交等方式。而AJAX则可以使得前端页面在不进行整个页面刷新的情况下与服务端进行数据交互,可以带来更好的用户体验。

什么是JSON

JSON全称为JavaScript Object Notation,是一种轻量级的数据交换格式。它基于JavaScript的语法规则,但是可以用于多种编程语言和数据格式之间的数据交换。JSON的好处在于它比XML等格式更加简洁、轻量级。

PHP+AJAX+JSON

PHP+AJAX+JSON可以使得前端通过AJAX请求服务端的PHP脚本,服务端返回JSON格式数据,再由前端进行解析和渲染。下面以两个简单的示例来说明这一过程。

示例1:实现简单的AJAX请求

以下是HTML代码部分,包含一个文本框和一个按钮:

<html>
<head>
  <script>
    function getHint(str) {
      if (str.length == 0) {
        document.getElementById("txtHint").innerHTML = "";
        return;
      } else {
        var xmlhttp = new XMLHttpRequest();    // 创建一个AJAX对象
        xmlhttp.onreadystatechange = function() {
          if (this.readyState == 4 && this.status == 200) {
            document.getElementById("txtHint").innerHTML = this.responseText;
          }
        };
        xmlhttp.open("GET", "gethint.php?q=" + str, true);    
        xmlhttp.send();    // 发送请求
      }
    }
  </script>
</head>
<body>

  <h3>Start typing a name in the input field below:</h3>
  <form>
    First name: <input type="text" onkeyup="getHint(this.value)">
  </form>
  <p>Suggestions: <span id="txtHint"></span></p>

</body>
</html>

接下来是gethint.php脚本的内容:

<?php
// 获取q参数
$q = $_REQUEST["q"];

// 如果q参数不为空,则查询数据库
if ($q !== "") {
  $dbhost = "localhost";
  $dbuser = "root";
  $dbpass = "";
  $dbname = "testDB";
  // 创建数据库连接
  $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);

  if (!$conn) {
    die("Connection faild: " .mysqli_connect_error());
  }

  // 查询数据库数据
  $sql = "SELECT * FROM users WHERE firstname LIKE '".$q."%'";
  $result = mysqli_query($conn, $sql);

  // 根据查询结果生成建议列表
  if (mysqli_num_rows($result) > 0) {
    while ($row = mysqli_fetch_assoc($result)) {
      echo "<p>" . $row["firstname"] . " " . $row["lastname"] . "</p>";
    }
  } else {
    echo "No suggestions";
  }

  mysqli_close($conn);
}

上述代码中,当用户输入姓名首字母后,就会发送一个GET请求到gethint.php脚本,该脚本根据查询到的结果返回JSON格式数据(或者无匹配结果时返回"No suggestions")。

示例2:使用jQuery编写AJAX请求

jQuery是一种十分常用的JavaScript库,可以大大简化前端开发的工作量。下面是一个使用jQuery完成AJAX请求的简单示例:

<html>
<head>
  <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
  <script>
    $(document).ready(function() {
      $("button").click(function() {
        $.ajax({
          url: "demo_ajax_json.php",    // 请求地址
          dataType: "json",           // 预期返回数据的类型
          success: function(result) {   // 请求成功后的回调函数
            $("#div1").html(result.firstname + " " + result.lastname);
          }
        });
      });
    });
  </script>
</head>
<body>

<button>Get JSON data</button>

<div id="div1"></div>

</body>
</html>

接下来是demo_ajax_json.php脚本:

<?php
// 返回JSON格式数据
header('Content-Type: application/json');

$arr = array('firstname' => "John", 'lastname' => "Doe");
echo json_encode($arr);
?>

上述代码中,当用户点击按钮时,会发送一个GET请求到demo_ajax_json.php脚本,该脚本返回JSON格式数据({"firstname":"John","lastname":"Doe"}),前端页面通过jQuery解析后,显示在页面上。

结语

上述两个示例分别说明了如何通过PHP和jQuery发送AJAX请求,并接收/返回JSON格式数据。AJAX+JSON能够带来更好的用户体验,使得前端和后端的交互更加快捷高效。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php+ajax+json 详解及实例代码 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Javascript数组Array方法解读

    接下来我将为您详细讲解 “Javascript数组Array方法解读” 的完整攻略。 1. 概述 在 Javascript 中,数组(Array)是一个非常常用的数据结构,可以用来存储一系列的值。同时,数组提供了丰富的方法,可以对数组进行各种操作,例如添加、删除、筛选、排序等。 在本文中,我将为您详细解读 Javascript 数组的常用方法,帮助您更好地掌…

    JavaScript 2023年5月27日
    00
  • 如何通过JS实现日历简单算法

    下面我将详细讲解如何通过JS实现日历简单算法的完整攻略。 实现思路 通过JS实现日历算法的基础思路是计算出每个月份的天数,以及每个月份的第一天是星期几,然后将这些信息展示到日历中。 代码实现 以下是通过JS实现日历算法的完整代码示例: function getDaysInMonth(year, month) { return new Date(year, m…

    JavaScript 2023年5月27日
    00
  • JavaScript对JSON数据进行排序和搜索

    下面是关于JavaScript对JSON数据进行排序和搜索的完整攻略: 排序 要对JSON数据进行排序,可以先将其转换为数组,然后使用sort()方法进行排序。以下是具体的步骤: 将JSON数据解析为JavaScript对象。 let data = ‘{"name": "Alice", "age":…

    JavaScript 2023年5月27日
    00
  • 用javascript实现改善用户体验之alert提示效果

    下面是用javascript实现改善用户体验之alert提示效果的完整攻略。 一、alert提示框的不足 在很多情况下,我们需要对用户进行提示,告诉他们一些信息。在JavaScript中,最常用的提示方式就是使用alert框。 使用alert提示框的优点是简单易用,可以快速开发。但缺点也是十分明显的,如下: 使用alert框会打断用户的操作,从而降低用户的体…

    JavaScript 2023年6月10日
    00
  • JS获取节点的兄弟,父级,子级元素的方法

    JS获取节点的兄弟、父级、子级元素的方法可以使用DOM提供的方法实现。下面是几种常用的方法: 获取兄弟元素节点 1. nextSibling和previousSibling nextSibling和previousSibling分别是获取下一个兄弟节点和上一个兄弟节点的方法。这两个方法返回的都是一个节点对象。需要注意的是,获取的兄弟节点可能是文本节点或注释节…

    JavaScript 2023年6月10日
    00
  • JS写谷歌浏览器chrome的外挂实例

    JS是一种动态编程语言,广泛应用于浏览器中。除了网页编程,JS还可以用来编写浏览器的插件,也就是所谓的”外挂”。在本篇攻略中,我们将讲解如何使用JS编写一款chrome浏览器的外挂。 1.了解chrome的插件机制 在开始编写插件之前,我们需要先了解一下chrome的插件机制。chrome的插件分为两种:扩展和应用。扩展是指通过插件来优化浏览器功能,比如广告…

    JavaScript 2023年6月11日
    00
  • JavaScript 判断浏览器类型及版本

    JavaScript 判断浏览器类型及版本是前端开发中的一个常见需求,下面为大家介绍一下如何进行判断。 获取userAgent字符串 在判断浏览器类型和版本之前,我们需要先获取浏览器的userAgent字符串。这可以通过JavaScript里的navigator对象来实现: var ua = navigator.userAgent.toLowerCase()…

    JavaScript 2023年6月11日
    00
  • JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析

    JS常见疑难点分析之match方法 match方法是JS字符串对象中的一个常见方法,用于对字符串进行正则表达式匹配。其基本语法为: string.match(regexp) string:必选项,表示需要匹配的字符串。 regexp:必选项,表示正则表达式。 如果成功匹配,则返回一个匹配数组,否则返回null。 match方法常用示例 示例一 const s…

    JavaScript 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部