前期准备:

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

界面截图:

HTML代码(基于bootstrap):

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

javascript代码:

        // 查询员工方法
var oKeyword=document.getElementById('keyword'),     //员工编号
oSearchBtn=document.getElementById('search'),     //查询按钮
oSearchRes=document.getElementById('searchResult'); //反馈结果显示 // 查询员工按钮点击事件
oSearchBtn.onclick=function(){
searchStaff();
}
// 创建查询员工方法
function searchStaff(){
var xhr=new XMLHttpRequest();
xhr.open('GET','serverjson.php?number='+oKeyword.value);
xhr.send();
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status=200){
var data=JSON.parse(xhr.responseText); //json解析方法JSON.parse 或者 eval('('+xhr.responseText+')')
oSearchRes.innerHTML=data.msg;
}
}
}
} // 增加员工
var oAddnumber=document.getElementById('add-number'), //员工编号
oAddname=document.getElementById('add-name'), //员工姓名
oAddsex=document.getElementById('add-sex'), //员工性别
oAddjob=document.getElementById('add-job'), //员工职位
oAddSearch=document.getElementById('add-search'), //增加员工按钮
oAddResult=document.getElementById('add-resultshow'); //反馈结果显示 // 增加员工按钮点击事件
oAddSearch.onclick=function(){
createStaff();
}
// 创建增加员工方法
function createStaff(){
var xhr=new XMLHttpRequest();
xhr.open('POST','serverjson.php');
var data='name='+oAddname.value
+'&number='+oAddnumber.value
+'&sex='+oAddsex.value
+'&job='+oAddjob.value;
//在open和send之间设置Content-Type
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send(data);
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status=200){
var data=JSON.parse(xhr.responseText);
if(data.success){
oAddResult.innerHTML=data.msg;
}else{
oAddResult.innerHTML='出现错误:'+data.msg;
}
}else{
alert('发生错误!'+xhr.status)
}
}
}
}
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全接触 http://www.imooc.com/learn/250

最新文章

  1. EntityFramework 7.0之初探【基于VS 2015】(十)
  2. PAT 1009. 说反话 (20) JAVA
  3. IIS Express 外部访问
  4. Java web 开发环境搭建
  5. 【译】Android系统简介—— Activity
  6. 事件分发&amp;响应链
  7. C#反射(二) 【转】
  8. Android新建项目手动添加Layout布局
  9. Android-管理Activity生命周期 -重新创建Activity
  10. 浙大 pat 1038 题解
  11. Nutz 第一个Demo
  12. 基于LDA的Topic Model变形
  13. 整合 JIRA 和 Confluence 6
  14. Cookie的简单实用
  15. 16.3-uC/OS-III同步 (事件标志组实验)
  16. centos 7中监控mysql 数据库脚本(监控端口)
  17. 不同数据库下的web.config中数据库连接字符串
  18. Linux CentOS 7的图形界面安装(GNOME、KDE等)
  19. English trip -- VC(情景课)3 B Bamily members
  20. cordova安卓手机&lt;a href=&quot;tel:xxx&quot;&gt;&lt;/a&gt;无法进入拨号界面问题

热门文章

  1. babel配置
  2. 关于Vue脚手架写法的问题
  3. session、token、cookie的区别
  4. 基于Ubuntu搭建Linux路由器
  5. HDFS常用文件操作
  6. 搭建高可用的Eureka注册中心
  7. Failed loading D:\Program Files\phpStudy20161103\php\php-5.6.27-nts\ext\php_xdebug.dll
  8. 搞ACM的伤不起
  9. CentOS 7 samba 配置
  10. 【linux】亲测成功_CentOS7.2/rhel7.2 忘记root密码及重置root密码的方法?