AJAX入门经典小案例_验证用户名

AJAX入门经典小案例_验证用户名

AJAX指的是异步的JavaScript和XML,是一种集成多种语言的脚本,得到了广泛的应用,原理在于随页面在浏览器端创建了ajax引擎,使得表单都经过了这个引擎的中转处理,同时服务器端也积极配合,用echo就可以将结果直接返回给引擎。下面就用一个最常见的用户名的验证小案例展示ajax的应用。

l        login.php源代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">

<head>

<metahttp-equiv="Content-Type" content="text/html;charset=utf-8" />

<title>登录界面</title>

<scripttype="text/javascript">

       //创建ajax引擎

       functiongetXmlHttpObject(){

              varxmlHttpRequest;

              if(window.ActiveXObject){//IE浏览器

                     xmlHttpRequest=newActiveXObject("Microsoft.XMLHTTP");

              }else{//others

                     xmlHttpRequest=newXMLHttpRequest();

              }

              returnxmlHttpRequest;

       }

       //验证用户名是否存在

       varmyXmlHttpRequest="";

       functioncheckName(){

              myXmlHttpRequest=getXmlHttpObject();

              if(myXmlHttpRequest){

                     varurl="check.php?username="+$("username").value;

                     //第三个参数true表示使用异步机制,如果false表示不使用异步

                     myXmlHttpRequest.open("get",url,true);

                     //回调函数dealBack

                     myXmlHttpRequest.onreadystatechange=dealBack;

                     //get请求填null,post请求,则填实际数据

                     myXmlHttpRequest.send(null);

              }

       }

       //回调函数

       functiondealBack(){

              if(myXmlHttpRequest.readyState==4){

                     $('checker').value=myXmlHttpRequest.responseText;

              }

       }

       //简化获取值

       function$(id){

              returndocument.getElementById(id);

       }

</script>

</head>

 

<body>

       <formaction="" method="">

    用户名字:<inputtype="text" οnkeyup="checkName();" name="username1" id="username">

   <input style="border-width: 0;color: red"type="text" id="checker">

   <br/>

    <inputtype="submit" value="登录">

   </form>

</body>

</html>

l        check.php源代码

<?php

       header("Content-Type:text/xml;charset=utf-8");

       //告诉浏览器不要缓存数据

       header("Cache-Control:no-cache");

       $username=$_GET['username'];

       if($username=="LepinHeiker"){

              echo"该用户已被列入黑名单";//数据直接返回给请求的页面

       }else{

              echo"合法用户";

       }

?>   

 

解析:上面是以get方式进行的,如果提交的用户名不变化,浏览器将不会真的发请求,而是从缓存取数据,解决方法如下:

l       url 后带一个总是变化的参数,比如当前时间varurl="/ajax/registerProcess.php?mytime="+new Date()+"&username="+$("username").value;

l       在服务器回送结果时,禁用缓存.【已经应用】

@   //这里两句话很重要,第一讲话告诉浏览器返回的数据是xml格式

@   header("Content-Type:text/xml;charset=utf-8");

@   //告诉浏览器不要缓存数据

@   header("Cache-Control:no-cache");

 

若用post方式,那么关键代码要做如下修改:

l        login.php部分源代码

function checkName(){

              myXmlHttpRequest=getXmlHttpObject();

              if(myXmlHttpRequest){

                     varurl="check.php";

                     vardata="username="+$('username').value;

                     myXmlHttpRequest.open("post",url,true);

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

                     //回调函数dealBack

                     myXmlHttpRequest.onreadystatechange=dealBack;

                     //get请求填null,post请求,则填实际数据

                     myXmlHttpRequest.send(data);

              }

       }

l        check.php部分源代码

$username=$_POST['username'];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经典案例,带数据库脚本、Java源文件和页面源文件。有演示效果,也可以自己部署看效果。以下是案例的目录。 1-1.EXE 动态加载的FAQ实例演示 1-2.EXE 根据邮政编码获取地区信息实例演示 1-3.EXE 动态树形列表实例演示 1-4.EXE 多级联动菜单实例演示 1-5.EXE 条件设置向导实例演示 1-6.EXE 页面关键词提示实例演示 2-1.EXE 无刷新显示回帖实例演示 2-2.EXE 输入内容前提示实例演示 2-3.EXE 带进度的文件上传实例演示 2-4.EXE 大量数据动态浏览查询实例演示 2-5.EXE 信息排序实例演示 2-6.EXE 切换标签页实例演示 3-1.EXE 注册表单验证实例演示 3-2.EXE 购物车实例演示 3-3.EXE 产品快速检索实例演示 3-4.EXE 系列产品特性速查实例演示 3-5.EXE 邮件订阅实例演示 3-6.EXE 产品评级实例演示 4-1.EXE 简单计算器实例演示 4-2.EXE 文章拼写检查实例演示 4-3.EXE 拼词游戏实例演示 4-4.EXE 在线词典实例演示 4-5.EXE 远程网页源代码读取实例演示 5-1.EXE 相册浏览实例演示 5-2.EXE 幻灯片实例演示 5-3.EXE 灯箱效果实例演示 5-4.EXE 聊天室实例演示 6-1.EXE 自动登录实例演示 6-2.EXE 自动保存草稿实例演示 6-3.EXE 实时更新的股价实例演示 6-4.EXE 提前加载分页文章实例演示 7-1.EXE 获取服务器当前时间实例演示 7-2.EXE 远程PING服务器实例演示 7-3.EXE 服务器监测系统实例演示 7-4.EXE 使用滑动栏设置参数实例演示 8-1.EXE RSS阅读器实例演示 8-2.EXE 天气情况查询实例演示 8-3.EXE 访问搜索服务实例演示 8-4.EXE 读取Amazon产品目录实例演示 9-1.EXE 名片册实例演示 9-2.EXE 自定义个人门户实例演示 9-3.EXE 个人任务管理实例演示 9-4.EXE 许愿墙实例演示 9-5.EXE 日程表实例演示 9-6.EXE 考试系统实例演示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值