Ajax入门

前后端数据交互(入门篇)

很多第一次听说Ajax技术的人可能比较茫然,也不知道这个东西是用来干嘛的。举个例子,比如我们要在淘宝注册一个账号,需要填写用户名手机号邮箱等等的信息,在还有没Ajax的几年前我们每次注册账号都需要把所有信息填完,然后提交,完了我们一点提交就发现,这会儿账户名已经被注册了,

OMG 这时就要全部重新填写,写完一提交邮箱又重复了,反复几遍下来,才终于注册好一个账户,非常的麻烦浪费时间。当Ajax出现后,现在几乎所有网页的表单提交都使用了这个技术,又例如当我们在注册一个淘宝账号时,如果用户名被占用了会马上在输入框右侧出现红色警示文字“该用户名已被注册”...相同其他条目也是。这样一来就极大提高了提交效率,并且不需要服务器一遍又一遍重新加载整个浏览器页面,节约了客户等待时间。

为了方便初学者学习,代码摘自MOOC网

首先到

http://www.apachefriends.org/download.html

下载XAMPP(一个包含 MySQL、PHP 和 Perl 的 Apache功能强大的建站集成软件包)打开control.exe然后startApache。如果无法开启则在config第一项将端口80改为8080


新建Ajax站点,


在DW里写两个文件,一个是服务端的,一个客户端

服务器:

//设置页面内容是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:text/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;

}

//TODP:获取POST表单数据并保存到数据库

//提示保存成功

echo"员工:".$_POST["name"]."信息保存成功!";

}

?>

HTML


JS

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

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

var request=new XMLHttpRequest();

request.open("GET","server.php?number="+document.getElementById("keyword").value);//GET请求要把一些参数传到URL里面

request.send();

request.onreadystatechange=function(){

if(request.readyState===4){

if(request.status===200){

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

}else{

alert("发生错误:"+reqyest.status)}

}

}

}

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

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

var request=new XMLHttpRequest();

request.open("POST","server.php");  //POST请求是把参数传到send()里

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("发生错误:"+reqyest.status)}

}

}

}

文件目录

2016.5.25

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容

  • 前言 总括: 本文讲解了ajax的历史,工作原理以及优缺点,对XMLHttpRequest对象进行了详细的讲解,并...
    秦至阅读 928评论 0 19
  • 什么是Ajax?Ajax(Asynchronous Javascrpt And Xml)是一种运用于浏览器的技术,...
    卓三阳阅读 501评论 0 0
  • 在所有的教程中,不管是网上的资料还是书籍上。都说,想要学会ajax,需要提前学会html+css+javascri...
    21克风阅读 484评论 0 8
  • AJAX是网页交互过程中,通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重...
    Bennt阅读 403评论 0 1
  • 一 这些人吃的粮食 曾经也养活牛马 而那些养活牛马的草地 只能养活人类的眼睛 二 深爱着家乡的味道 祖先的汗水 皱...
    戈乐阅读 303评论 3 5