视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
js结合json实现ajax简单实例
2020-11-27 19:47:55 责编:小OO
文档
 这篇文章主要为大家详细介绍了js结合json实现ajax简单实例的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前期准备

1、安装wampserver或者其他相似软件来搭建本地集成安装环境,我安装的是phpstudy
2、html、js、css等文件需要放置在PHPstudy中的WWW目录中,默认运行index页面
3、bootstrap.css

界面截图:

phpstudy用起来很方便,如果你的电脑没有安装过php,那要先配置系统环境变量,将php.exe(在PHPstudy的安装目录里找)的路径添加进去,然后在cmd里输入 php -v ,出现php的安装版本等信息则说明安装成功。

然后新建一个项目在PHPstudy的WWW文件夹下,这里我取名为AjaxDemo。

index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>index</title>
 <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" />
 <style>
 .container{ width: 50%; margin-top: 30px; }
 .text-danger{ margin-top: 6px; }
 </style>
</head>
<body>
 <p class="container">
 <p class="panel panel-default">
 <p class="panel-heading">
 <p class="panel-title">员工查询</p>
 </p>
 <p class="panel-body">
 <p class="form-horizontal">
 <p class="form-group">
 <label class="col-md-2 control-label">员工编号:</label>
 <p class="col-md-8">
 <input type="text" class="form-control" id="keyword"> 
 </p>
 <p class="col-md-1">
 <button class="btn btn-primary" id="search">查询</button>
 </p>
 </p>
 <p class="form-group">
 <label class="col-md-2 control-label">查询结果:</label>
 <p class="text-danger col-md-8" id="searchResult"></p>
 </p>
 </p> 
 </p>
 </p>
 </p>
 <p class="container">
 <p class="panel panel-default">
 <p class="panel-heading">
 <p class="panel-title">员工增加</p>
 </p>
 <p class="panel-body">
 <p class="form-horizontal">
 <p class="form-group">
 <label class="col-md-2 control-label">员工编号:</label>
 <p class="col-md-8">
 <input type="text" class="form-control" id="add-number">
 </p>
 </p>
 <p class="form-group">
 <label class="col-md-2 control-label">员工姓名:</label>
 <p class="col-md-8">
 <input type="text" class="form-control" id="add-name">
 </p>
 </p>
 <p class="form-group">
 <label class="col-md-2 control-label">员工性别:</label>
 <p class="col-md-8">
 <input type="text" class="form-control" id="add-sex">
 </p>
 </p>
 <p class="form-group">
 <label class="col-md-2 control-label">员工职位:</label>
 <p class="col-md-8">
 <input type="text" class="form-control" id="add-job">
 </p>
 </p>
 <p class="form-group">
 <p class="col-md-offset-2 col-md-1"> 
 <button class="btn btn-primary" id="add-search">增加员工</button>
 </p>
 </p>
 <p class="form-group">
 <label class="col-md-2 control-label">结果:</label>
 <p class="text-danger col-md-8" id="add-resultshow"></p>
 </p>
 </p> 
 </p>
 </p>
 </p>
 <script src="staffManage.js"></script>
</body>
</html>

staffManage.js

实例化Ajax可分为五点,比较好记:

1、new一个XMLHttpRequest实例 注意兼容低版本的IE浏览器

2、open(method,url,asyn) XMLHttpRequest对象的open()方法有3个参数,第一个参数指定是GET还是POST,第二个参数指定URL地址,第三个参数指定是否使用异步,默认是true,所以不用写。

3*若是post请求还要加上请求头 setRequestHeader(”Content-Type”,”application/x-www-form-urlencoded”)

4、send
调用send()方法才真正发送请求。GET请求不需要参数,POST请求需要把body部分以字符串或者FormData对象传进去。

5、onReadyStateChange

6、responseText

serverjson.php

<?php
//设置页面内容是html编码格式是utf-8
header("Content-Type: text/plain;charset=utf-8"); 
//header("Content-Type: application/json;charset=utf-8"); 
//header("Content-Type: text/xml;charset=utf-8"); 
//header("Content-Type: text/html;charset=utf-8"); 
//header("Content-Type: application/javascript;charset=utf-8");

//定义一个数组,包含员工的信息,每条员工信息为一个数组
$staff = array
 (
 array("name" => "洪七", "number" => "101", "sex" => "男", "job" => "总经理"),
 array("name" => "郭靖", "number" => "102", "sex" => "男", "job" => "开发工程师"),
 array("name" => "黄蓉", "number" => "103", "sex" => "女", "job" => "产品经理")
 );

//判断如果是get请求,则进行搜索;如果是POST请求,则进行新建
//$_SERVER是一个超全局变量,在一个脚本的全部作用域中都可用,不用使用global关键字
//$_SERVER["REQUEST_METHOD"]返回访问页面使用的请求方法
if ($_SERVER["REQUEST_METHOD"] == "GET") {
 search();
} elseif ($_SERVER["REQUEST_METHOD"] == "POST"){
 create();
}

//通过员工编号搜索员工
function search(){
 //检查是否有员工编号的参数
 //isset检测变量是否设置;empty判断值为否为空
 //超全局变量 $_GET 和 $_POST 用于收集表单数据
 if (!isset($_GET["number"]) || empty($_GET["number"])) {
 echo '{"success":false,"msg":"参数错误"}';
 return;
 }
 //函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
 //global 关键词用于访问函数内的全局变量
 global $staff;
 //获取number参数
 $number = $_GET["number"];
 $result = '{"success":false,"msg":"没有找到员工。"}';

 //遍历$staff数组,查找key值为number的员工是否存在,如果存在,则修改返回结果
 foreach ($staff as $value) {
 if ($value["number"] == $number) {
 $result = '{"success":true,"msg":"找到员工:员工编号:' . $value["number"] . 
 ',员工姓名:' . $value["name"] . 
 ',员工性别:' . $value["sex"] . 
 ',员工职位:' . $value["job"] . '"}';
 break;
 }
 }
 echo $result;
}

//创建员工
function create(){
 //判断信息是否填写完全
 if (!isset($_POST["name"]) || empty($_POST["name"])
 || !isset($_POST["number"]) || empty($_POST["number"])
 || !isset($_POST["sex"]) || empty($_POST["sex"])
 || !isset($_POST["job"]) || empty($_POST["job"])) {
 echo '{"success":false,"msg":"参数错误,员工信息填写不全"}';
 return;
 }
 //TODO: 获取POST表单数据并保存到数据库

 //提示保存成功
 echo '{"success":true,"msg":"员工:' . $_POST["name"] . ' 信息保存成功!"}';
}

?>

总结

整个过程大概如图:

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

ajax三级联动实现代码

ajax实现加载数据功能

ajax的使用方法_例题、ajax的数据处理

下载本文
显示全文
专题