Ajax应用查询员工信息

首先要用上一篇的步骤启动服务器,建立站点。然后在该站点下创建php文件和html文件。

php代码如下,文件名为server.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 "参数错误";return;}//函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。//global 关键词用于访问函数内的全局变量global $staff;//获取number参数$number = $_GET["number"];$result = "没有找到员工。";//遍历$staff多维数组,查找key值为number的员工是否存在,如果存在,则修改返回结果foreach ($staff as $value) {if ($value["number"] == $number) {$result = "找到员工:员工编号:" . $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 "参数错误,员工信息填写不全";return;}//TODO: 获取POST表单数据并保存到数据库//提示保存成功echo "员工:" . $_POST["name"] . " 信息保存成功!";
}

html代码如下

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Demo</title>
<style>
body, input, select, button, h1 {font-size: 28px;line-height:1.7;
}
</style>    
</head><body>
<h1>员工查询</h1><label for="keyword">请输入员工编号:</label>
<input type="text" id="keyword" />
<button id="search">查询</button>
<!--保存查询结果-->
<p id="searchResult"></p><h1>员工新建</h1>
<label  for="staffName" >请输入员工姓名:</label>
<input type="text" id="staffName" /><br>
<label for="staffNumber">请输入员工编号:</label>
<input type="text" id="staffNumber" /><br>
<label for="staffSex">请选择员工性别:</label>
<select id="staffSex">
<option></option>
<option></option>
</select><br>
<label for="staffJob">请输入员工职位:</label>
<input type="text" id="staffJob" /><br>
<button id="save">保存</button>
<p id="createResult"></p><script>
document.getElementById("search").onclick = function() { //发送查询请求并处理var request = new XMLHttpRequest();//server.php?number="   document.getElementById("keyword").value//server.php是地址,其后要带一个参数number,//number=document.getElementById("keyword").value,即刚才输入的要查询的员工编号
    request.open("GET", "server.php?number="   document.getElementById("keyword").value);request.send();request.onreadystatechange = function() {if (request.readyState===4) {if (request.status===200) { document.getElementById("searchResult").innerHTML = request.responseText;} else {alert("发生错误:"   request.status);}} }
}
document.getElementById("save").onclick = function() { var request = new XMLHttpRequest();request.open("POST", "server.php");var data = "name="   document.getElementById("staffName").value   "&number="   document.getElementById("staffNumber").value   "&sex="   document.getElementById("staffSex").value   "&job="   document.getElementById("staffJob").value;request.setRequestHeader("Content-type","application/x-www-form-urlencoded");request.send(data);request.onreadystatechange = function() {if (request.readyState===4) {if (request.status===200) { document.getElementById("createResult").innerHTML = request.responseText;} else {alert("发生错误:"   request.status);}} }
}
</script>
</body>
</html>

代码完成后,直接在DreamWeaver里面按F12快捷键!!!!不能通过HTML文件右键打开,这样就会有跨域错误。

直接按F12快捷键才是用了本地的服务器,同一个域。


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

局域网基础知识

一、局域网的特征&#xff1a;   局域网分布范围小&#xff0c;投资少&#xff0c;配置简单等&#xff0c;具有如下特征&#xff1a;     1&#xff0e;传输速率高&#xff1a;一般为1Mbps--20Mbps&#xff0c;光纤高速网可达100Mbps&#xff0c;1000MbpS     2&…

初始化懒惰关系以及何时使用它们的5种方法

实体之间关系的延迟加载是JPA中公认的最佳实践。 它的主要目标是仅从数据库中检索请求的实体&#xff0c;并仅在需要时加载相关实体。 如果我们只需要请求的实体&#xff0c;那是一个很好的方法。 但是&#xff0c;如果我们还需要一些相关实体&#xff0c;它会增加工作量&#…

fieldset ----- 不常用的HTML标签

fieldset 元素可将表单内的相关元素分组。 <fieldset> 标签将表单内容的一部分打包&#xff0c;生成一组相关表单的字段。 当一组表单元素放到 <fieldset> 标签内时&#xff0c;浏览器会以特殊方式来显示它们&#xff0c;它们可能有特殊的边界、3D 效果&#xff…

谷歌移动应用强调设计元素:向极简风格转型

导语&#xff1a;美国科技博客TechCrunch今天撰文称&#xff0c;一向不看重设计的谷歌&#xff0c;最近也开始在移动应用中强调设计元素&#xff0c;并向极简风格转型。 以下为文章全文&#xff1a; 谷歌的设计向来不够酷&#xff0c;Gmail和Google Docs的功能都很不错&#xf…

Java 8流和Lambda表达式–解析文件示例

最近&#xff0c;我想从输出日志中提取某些数据。 这是日志文件的一部分&#xff1a; 2015-01-06 11:33:03 b.s.d.task [INFO] Emitting: eVentToRequestsBolt __ack_ack [-6722594615019711369 -1335723027906100557] 2015-01-06 11:33:03 c.s.p.d.PackagesProvider [INFO] -…

使用入站适配器公开HTTP Restful API。 第1部分(XML)

1.简介 这篇文章的目的是使用Spring Integration HTTP入站适配器实现HTTP Restful API。 本教程分为两个部分&#xff1a; XML配置示例&#xff08;同一篇文章&#xff09;。 Java DSL示例。 这将在本教程的下一部分中进行说明&#xff0c;展示如何使用Spring Integration Ja…

根据thickbox定制自己的遮罩层

Jquery有很多遮罩层插件&#xff0c;我使用了一款叫做thickbox的插件&#xff0c;效果很好。 但现在我要和后台交互&#xff0c;后台处理数据时间较长&#xff0c;为了提示用户&#xff0c;同时不让用户进行其他操作&#xff0c;这时候thickbox就不适用了&#xff0c;因为它允许…

Es6学习笔记(7)----数组的扩展

参考书《ECMAScript 6入门》http://es6.ruanyifeng.com/数组的扩展1.扩展运算符:可以将数组转化成逗号隔离的单个参数...[1,2,3] //控制台运行报错console.log(...[1,2,3]);//1,2,3(1)代替apply方法function test(a,b){return a b;}test.apply(null,[1,2]) 同 test(...[1,2]) 作…

使用jOOQ和JavaFX将SQL数据转换为图表

最近&#xff0c;我们已经展示了Java 8和函数式编程将如何为使用jOOQ和Java 8 lambda和Streams进行SQL数据的函数数据转换为Java开发人员带来新的视角。 今天&#xff0c;我们将这一步骤更进一步&#xff0c;将数据转换为JavaFX XYChart.Series以根据数据生成美观的条形图。 设…

有一只猪400斤,桥承重200斤,怎么过桥?

条件:1 猪是活猪,任何方案都不 能切割猪。2 故事发生在猪王国&#xff0c;不要引 入人的因素。3 是过桥&#xff0c;不是过河&#xff0c;不要 说游泳过去。4 是过桥&#xff0c;不是过涧&#xff0c;不要 说飞过去。5 桥是承重200斤的桥&#xff0c;把桥 挪到平地上抑或过另一…

node.js学习笔记(1)

一&#xff0e; 安装以及环境配置 安装路径 http://nodejs.cn/download/ 多种环境选择 环境变量的配置 Step1 先检查环境变量中的系统变量里面的path,查看是否加入了node.js 例如我的node.js安装路径是C:\Program Files\nodejs 那么&#xff0c;这个path里面就应该加…

do语句转化为局部函数一例

do: (do ((x a (b x)) (y c (d y))) ((test x y) (z x y)) (f x y)) 局部函数&#xff1a; (labels ((rec (x y) (cond ((test x y) (z x y)) (t (f x y) (rec (b x) (d y)))))) …

主要版本发布后Java开发人员应使用的15种工具

新部署的生存工具包&#xff1a;适用于Java开发人员的工具&#xff0c;这些工具经常将代码部署到生产中&#xff01; Takipi会检测生产中的所有错误&#xff0c;并像发生错误时一样显示变量值 立即部署并获得免费的T恤 适用于新部署的终极生存套件 与在僵尸末日场景下玩弄&…

js dom node.children与node.childNodes区别

不同点&#xff1a;node.children不会取到节点下面的TextNode但是node.childNodes会取到 共同点&#xff1a;两者都是集合类数组&#xff0c;可以通过索引的方式取到值也可以用for循环遍历 更多专业前端知识&#xff0c;请上 【猿2048】www.mk2048.com

Java EE 7批处理和魔兽世界–第2部分

今天&#xff0c;我将把第二部分带到我以前关于Java EE 7批处理和《魔兽世界–第1部分》的帖子中。 在本文中&#xff0c;我们将了解如何从第1部分中获得的数据中汇总和提取指标。 概括 批处理目的是下载魔兽世界拍卖行的数据&#xff0c;处理拍卖并提取指标。 这些指标将建立…

js导航条 二级滑动 模仿块级作用域

for(var i 1;i<7;i){    //因为首级标题有6个&#xff0c;对每个首级标题添加mouseover和mouseout事件。    //这里用到块级作用域(function(k){document.getElementById("p_"k).addEventListener(mouseover,function(event){document.getElementById(p_…

js 中的console.log有什么作用

主要是方便你调式javascript用的。你可以看到你在页面中输出的内容。 相比alert他的优点是&#xff1a; 他能看到结构话的东西&#xff0c;如果是alert&#xff0c;淡出一个对象就是[object object],但是console能看到对象的内容。console不会打断你页面的操作&#xff0c;如…

太糟糕了,Java 8没有Iterable.stream()

这是最近比较有趣的Stack Overflow问题之一&#xff1a; 为什么Iterable不提供stream&#xff08;&#xff09;和parallelStream&#xff08;&#xff09;方法&#xff1f; 最初&#xff0c;直接将Iterable转换为Stream似乎很直观&#xff0c;因为在90&#xff05;的用例中&a…

struts+swfupload实现批量图片上传(上):swfupload

custom_settings : {progressTarget : "fsUploadProgress",cancelButtonId : "btnCancel",uploadButtonId : "btnUpload",myFileListTarget : "idFileList" },custom_settings调用方法 this.customSettings.cancelButtonId 缩略图js …

40行中的持久性KeyValue Server和一个可悲的事实

再次出现。. 回顾 Peters关于Unsafe用法的书面概述 &#xff0c;我将简要介绍一下Java中的低级技术如何通过启用更高级别的抽象或允许Java性能级别来节省开发工作可能很多人都不知道。 我的主要观点是表明&#xff0c;将对象转换为字节&#xff0c;反之亦然是一个重要的基础&a…