html文件中demo2_index.html

--------------------------------------------------------------------------------------------------------------------

<! DOCTYPE>

<html>

<head>

    <meta charset= "utf-8" >

    <title>Demo2 </title>

    <style>

body, input, button, select, h1 {

            font-size: 18px;

            line-height: 1.8em;

}

    </style>

</head>

<body>

<h1>员工查询</h1>

<label>输入员工编号:</label>

<input type= "text" id= "keyword">

<button id= "search">查询</button>

<p id= "searchResult"></p>

<h1>员工新建</h1>

<label>请输入员工姓名</label>

<input type= "text" id= "peopleName"> <br>

<label>请输入员工编号</label>

<input type= "text" id= "peopleNumber"> <br>

<label>请输入员工性别</label>

<select id= "peopleSex">

    <option>男</option>

    <option>女</option>

</select>

<br>

<label>请输入员工职位</label>

<input type= "text" id= "peopleJob"> <br>

<button id= "save">保存</button>

<p id= "createResult"></p>

<script>

    document.getElementById( "search" ).onclick = function (){

//发送Ajax查询请求并处理

var request = new XMLHttpRequest();

        request.open( "GET" ,"/ajax/demo2.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" ,"/ajax/demo2.php" );//POST请求是隐藏的不需要显示参数

var data = "name =" + document.getElementById("peopleName" ).value

                + "&number=" + document.getElementById("peopleNumber" ).value

                + "&sex=" + document.getElementById("peopleSex" ).value

                + "&job=" + document.getElementById("peopleJob" ).value;

        request.setRequestHeader("Content-Type" ,"application/x-www-form-urlencoded" );

        request.send(data);

if(request.readyState === 4){

if(request.status === 200){

                    document.getElementById( "createResult" ).innerHTML = request.responseText;

                } else {

                    alert( "发生错误:" + request.status);

                }

            }

    }

</script>

<!--<script>

    document.getElementById("search").onclick() = function();

    var request = new XMLHttpRequest();

    request.open("GET","demo2.php?number="+document.getElementById("keyword").value);

    request.send();

    request.onreadystatechange = function () {

        if(request.state===4){

            if(request.status===200){

                document.getElementById("searchResult").innerHTML = request.responseText;

            }else{

                alert("参数错误:"+request.status);

            }

        }

    }

</script>-->

</body>

</html>

---------------------------------------------------------------------------------------------------------------

php文件中demo2.php

<?php

/**

* Created by PhpStorm.

* User: moka

* Date: 2016/3/5

* Time: 5:22

*/

//设置页面内容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");

//定义一个多维数组

$people = 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 $people;

//获取number参数

    $number = $_GET["number" ];

    $result = "没有找到员工!" ;

//遍历$people多维数组,查找key值为number的员工是否存在,如果存在,则修改返回结果

foreach($people as $key){

if($key[ "number" ]==$number){

            $result = "找到员工:员工编号:" .$key["number" ]."员工姓名:" .$key["name" ]."员工性别:" .$key["sex" ]."员工职位:" .$key["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" ]."信息保存成功!" ;

}

?>

ajax案例源码的更多相关文章

  1. AJAX JSONP源码实现(原理解析)

    关于JSONP以及跨域问题,请自行搜索. 本文重点给出AJAX JSONP的模拟实现代码,代码中JSONP的基本原理也一目了然. <html xmlns="http://www.w3. ...

  2. android向web提交参数的4种方式总结,附带网站案例源码

    第一种:基于http协议通过get方式提交参数 1.对多个参数的封装 public static String get_save(String name, String phone) { /** * ...

  3. java实现 swing模仿金山打字 案例源码

    java实现 swing模仿金山打字 案例源码,更多Java技术就去Java教程网.http://java.662p.com 代码: <font size="3">im ...

  4. 免费赠送原创的opengl电子书教程和案例源码

    免费赠送原创的opengl电子书和案例源码,有兴趣qq群 52391108 下面是一部分教程截图

  5. ThreadLocal 简介 案例 源码分析 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  6. APICloud案例源码、模块源码、考试源码、开发工具大集合!赶快收藏

    APICloud专注于APP开发定制技术,多年来不停为开发者奉献更多的资源.此次,APICloud将以往的的资源进行更新.整合,以合集的形式分享给广大的用户. APICloud应用案例源码合集 API ...

  7. SpringBoot 项目搭建(详细介绍+案例源码)

    SpringBoot 项目搭建 SpringBoot 项目整合源码 SpringBoot 项目整合 一.项目准备 1.1 快速创建 SpringBoot 项目 1.2 标准项目结构图如下 1.3 添加 ...

  8. 【h5+c3】web前端实战项目、快装webapp手机案例源码

    快装WebApp项目(Web移动端开发案例)webapp移动端项目源码.html5+css3实战案例分享.微信端H5实例开发 简介快装WebApp是一个面向移动端的快速装修app,此项目为手机端:使用 ...

  9. 前后端交互之封装Ajax+SpringMVC源码分析

    为什么需要封装呢?因为用的多,我想将其封装成函数,当我想用它时,只需将那个函数对应的js文件引入即可,而不要重复写很多相同代码,利于开发效率的提高. 无论是$.ajax或$.post.$.get等,在 ...

随机推荐

  1. neo4j安装与示例

    Neo4j有两种访问模式:服务器模式和嵌入模式参考,下面主要讲windows下这两种模式的配置与访问示例 1 Windows下Neo4j服务器模式安装与示例 安装: 1.下载Neo4j,我下载的版本是 ...

  2. asp.net MVC 自动下载apk

    在Asp.net MVC中直接把.apk文件放入/Upload/App/ 路径下,然后通过IIS发布完之后,再通过http://xxx/Upload/App/xx.apk访问是访问不到的,因此不能下载 ...

  3. JS - Constructor还可以这样用

    JS中Constructor好用法: 即在只知道一个对象实例的情况下(不知道对象名),重新初始化一个新实例: function Person( firstname, lastname, age ) { ...

  4. WPF RichTextBox设置文本颜色

    //追加 txtResult.Document.Blocks.Add(new Paragraph(new Run("add by run") { Foreground = Brus ...

  5. Linux网络流量实时监控ifstat iftop命令详解

    ifstat 介绍 ifstat工具是个网络接口监测工具,比较简单看网络流量 实例 默认使用 #ifstat        eth0                eth1       KB /s i ...

  6. 打开 Mac OS X 隐藏的用户资源库文件夹的方法

    在较高版本的 Mac OS X 中,用户的资源库文件夹(/Users/username/Library)默认被系统隐藏了,从 Finder 窗口中不能直接打开. 但是通过下面这个方法可以快速打开用户资 ...

  7. python 字符串编码

    通过字符串的decode和encode方法 1 encode([encoding,[errors]]) #其中encoding可以有多种值,比如gb2312 gbk gb18030 bz2 zlib ...

  8. CyanogenMod wiki reading tips | Android tips

    To Enable the Developer and Performance settings on CyanogenMod 10.1 In the Settings app, choose the ...

  9. 如何交换两个等长整形数组使其数组和的差最小(C和java实现)

    1. 问题描述: 有两个数组a,b,大小都为n,数组元素的值任意整形数,无序: 要求:通过交换a,b中的元素,使[数组a元素的和]与[数组b元素的和]之间的差最小. 2. 求解思路: 当前数组a和数组 ...

  10. Knockout 新版应用开发教程之"text"绑定

    目的 DOM元素显示文本的值是你传递的参数,前提是text先绑定到该元素上 典型的常用元素 <span>或者<em>习惯性的用来显示文本,但是在技术上来说你可以用任何元素的. ...