Linux265
  • 首页
  • 资讯
  • 发行
  • 游戏
  • 软件
  • 教程
  • 书籍
  • 截图
  • 工具
  • 名站
  • 资源
  • 命令
  • VPS
如果您喜欢{Linux265},请告诉您身边的朋友,谢谢! 首页 > 教程 > JavaScript 教程 >JSON PHP
JavaScript 教程
js教程
js简介
js使用
js输出
js语句
js语法
js注释
js变量
js运算符
js算法
js赋值
js数据类型
js函数
js对象
js事件
js字符串
js字符串方法
js数值
js数值方法
js数组
js数组方法
js数组排序
js数组迭代
js日期
js日期格式
js日期获取
js日期设置
js数学运算
js随机数
js布尔运算符
js比较运算符
js条件语句
js条件判断Switch
js循环for语句
js循环while
js中Break和Continue
js类型转换
js位运算符
js正则表达式
js错误处理
js作用域
js变量提升
js严格模式
js中的this
js中的let
js中的const
js箭头函数
js类
js如何调试
js代码规范
js最佳实践
js常见错误
js优化性能
js保留关键字
js版本
js ES5介绍
js ES6介绍
js中JSON
JS 表单
js表单验证
js Form验证 API
JS 对象
js对象定义
js对象属性
js对象方法
js对象构造
js对象访问
js对象继承
js对象输出
js ES5对象方法
JS 函数
js函数定义
js函数参数
js函数调用
js调用函数 - call
js调用函数 - apply
js函数闭包
JS 类库
js类
js类继承
js静态方法
JS 异步
js回调
js异步
js promise
js async/await
JS HTML DOM
DOM 简介
DOM 方法
DOM 文档
DOM 元素
DOM HTML
DOM CSS
DOM 动画
DOM 事件
DOM 事件监听
DOM 导航
DOM 节点
DOM 集合
DOM 节点列表
JS 浏览器 BOM
js Window
js Screen
js Location
js History
js Navigator
js 弹出框
js Timing
js Cookies
JS AJAX
AJAX 简介
AJAX XMLHttp
AJAX 请求
AJAX 响应
AJAX XML
AJAX PHP
AJAX 数据库
AJAX 应用程序
AJAX 实例
JS JSON
JSON 简介
JSON 语法
JSON 与 XML
JSON 数据类型
JSON 解析
JSON 对象
JSON 数组
JSON PHP
JSON HTML
JSONP 方法
JS Web APIs
Web API - 简介
Web History API
Web Storage API
Web Geolocation API
JS vs jQuery
jQuery 选择器
jQuery HTML
jQuery CSS
jQuery DOM
JS 实例
JS 参考手册

JSON PHP

JSON 数组 JSON HTML

JSON 的常规用途是从 web 服务器读取数据,然后在网页中显示这些数据。

本章向您讲解如何在客户端与 PHP 服务器之间交换 JSON 数据。

PHP 文件

PHP 提供处理 JSON 的内建函数。

通过使用 PHP 函数 json_encode(),PHP 中的对象可转换为 JSON:

PHP 文件

<?php
$myObj->name = "John";
$myObj->age = 30;
$myObj->city = "New     York";

$myJSON = json_encode($myObj);

echo $myJSON;
?>

客户端 JavaScript

这是客户端上的 JavaScript,使用 AJAX 调用来请求上例的 PHP 文件:

实例

使用 JSON.parse() 把结果转换为 JavaScript 对象:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()     {
  if (this.readyState == 4 && this.status == 200) {
    var myObj = JSON.parse(this.responseText);
    document.getElementById("demo").innerHTML = myObj.name;
      }
};
xmlhttp.open("GET", "demo_file.php", true);
xmlhttp.send();

亲自试一试 »

PHP 数组

在使用 PHP 函数 json_encode() 时,PHP 中的数组也将被转换为 JSON:

PHP 文件

<?php
$myArr = array("John", "Mary", "Peter", "Sally");

$myJSON = json_encode($myArr);

echo $myJSON;
?>

客户端 JavaScript

这是客户端上的 JavaScript,使用 AJAX 调用来请求上例的 PHP 文件:

实例

请使用 JSON.parse() 将结果转换为 JavaScript 数组:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()     {
  if (this.readyState == 4 && this.status == 200) {
        var myObj = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myObj[2];
  }
};
xmlhttp.open("GET", "demo_file_array.php", true);
xmlhttp.send();

亲自试一试 »

PHP 数据库

PHP 是服务器端编程语言,应该用于只能由服务器执行的操作,比如访问数据库。

想象一下服务器上有一个数据库,包含客户、产品和供应商数据。

此刻,您需要请求服务器来获取"客户"表中前十条记录:

在客户端上,创建一个 JSON 对象,该对象描述要返回的行数

将请求发送到服务器之前,请将JSON对象转换为字符串,并将其作为参数发送到 PHP 页面的 url:

实例

请使用 JSON.stringify() 将 JavaScript 对象转换为 JSON:

obj = { "limit":10 };
dbParam = JSON.stringify(obj);
    xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
          if (this.readyState == 4 && this.status == 200) {
    document.getElementById("demo").innerHTML     = this.responseText;
  }
};
xmlhttp.open("GET",     "json_demo_db.php?x=" + dbParam, true);
xmlhttp.send();

亲自试一试 »

实例解析:

  • 定义包含 "limit" 属性和值的对象。
  • 将这个对象转换为 JSON 字符串。
  • 向这个 PHP 文件发送请求,其中 JSON 作为参数。
  • 等待直到请求返回结果(作为 JSON)。
  • 显示从 PHP 文件接收到的结果。

查看 PHP 文件

查看 PHP 文件

<?php
header("Content-Type: application/json; charset=UTF-8");
$obj =     json_decode($_GET["x"], false);
    
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
    $stmt = $conn->prepare("SELECT name FROM customers LIMIT ?");
$stmt->bind_param("s", $obj->limit);
$stmt->execute();
$result = $stmt->get_result();
    $outp = $result->fetch_all(MYSQLI_ASSOC);

echo json_encode($outp);
?>

PHP 文件解释:

  • 将请求转换为对象,使用 PHP 函数 json_decode()。
  • 访问数据库,用所请求的数据填充数组。
  • 把数组添加到对象,使用 json_encode() 函数以 JSON 返回该对象。

遍历结果

把从 PHP 文件接收到的结果转换为 JavaScript 对象,或者是在本例中的,一个 JavaScript数组:

实例

使用 JSON.parse() 把 JSON 转换为 JavaScript 对象:

...
xmlhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
            myObj = JSON.parse(this.responseText);
        for (x in myObj) {
          txt += myObj[x].name + "<br>";
    }
        document.getElementById("demo").innerHTML = txt;
  }
};
    ...

亲自试一试 »

PHP 方法 = POST

在向服务器发送数据时,通常最好是使用 HTTP POST 方法。

如需使用 POST 方法来发送 AJAX 请求,请指定该方法和正确的头部。

发送到服务器的数据现在必须是 send() 方法的参数:

实例

obj = { "limit":10 };
dbParam = JSON.stringify(obj);
    xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        myObj = JSON.parse(this.responseText);
        for (x in myObj) {
      txt += myObj[x].name + "<br>";
        }
    document.getElementById("demo").innerHTML = txt;
      }
};
    xmlhttp.open("POST", "json_demo_db_post.php", true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send("x=" + dbParam);

亲自试一试 »

PHP 文件中的唯一不同是获取被传输数据的方法。

PHP 文件

使用 $_POST 而不是 $_GET:

<?php
header("Content-Type: application/json; charset=UTF-8");
    $obj =     json_decode($_POST["x"], false);
        
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
    $stmt = $conn->prepare("SELECT name FROM customers LIMIT ?");
$stmt->bind_param("s",     $obj->limit);
$stmt->execute();
$result = $stmt->get_result();
    $outp = $result->fetch_all(MYSQLI_ASSOC);

echo json_encode($outp);
?>
JSON 数组 JSON HTML
分类导航
Deno 教程
JavaScript 教程
jQuery 教程
AD

站点信息

意见反馈

免责声明

关于本站

联系站长

站点导航

综合资讯

发行版

游   戏

软   件

教   程

书   籍

截   图

工   具

名   站

免费资源

Linux265资源分享网,简称Linux265,是一个致力于分享Linux相关资讯,推广Linux发行版,分享Linux游戏,分享Linux各种优秀实用软件,分享Linux相关教程的资源分享站。本站建立的宗旨是通过分享,让更多的人了解Linux,学习Linux,使用Linux,喜欢Linux。

关注本站: 欢迎投稿

关注公众号:

Copyright@2017-2018 Linux265. 豫ICP备16021824号-1 Powered by Linux265资源分享网