AJAX实例1--数据检验

本文介绍了一种使用AJAX技术实现的用户界面唯一性检查方法。通过客户端JavaScript与服务器端PHP交互,验证输入的用户名是否已被占用。文章提供了完整的HTML、JavaScript及PHP示例代码。

/************************************************** 
*Author:Java619 
*Time:2006-5   
**************************************************/

1.用户界面

sample1_1.html代码

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>唯一性检查</title>
<script language="javascript">
    
var http_request = false;
    
function send_request(url,str) {//初始化、指定处理函数、发送请求的函数
        http_request = false;
        
//开始初始化XMLHttpRequest对象
        if(window.XMLHttpRequest) //Mozilla 浏览器
            http_request = new XMLHttpRequest();
            
if (http_request.overrideMimeType) {//设置MiME类别
                http_request.overrideMimeType('text/xml');
            }

        }

        
else if (window.ActiveXObject) // IE浏览器
            try {
                http_request 
= new ActiveXObject("Msxml2.XMLHTTP");
            }
 catch (e) {
                
try {
                    http_request 
= new ActiveXObject("Microsoft.XMLHTTP");
                }
 catch (e) {}
            }

        }

        
if (!http_request) // 异常,创建对象实例失败
            window.alert("不能创建XMLHttpRequest对象实例.");
            
return false;
        }

        
var queryString = encodeURIComponent("username"+ "=" + 
                encodeURIComponent(str);
        http_request.onreadystatechange 
= processRequest;
        
// 确定发送请求的方式和URL以及是否同步执行下段代码
        var contentType = "application/x-www-form-urlencoded; charset=utf-8";
        
// 确定发送请求的方式和URL以及是否同步执行下段代码
        http_request.open("post", url, true);
        http_request.setRequestHeader(
"Content-Type", contentType);
        http_request.send(queryString);
    }

    
// 处理返回信息的函数
    function processRequest() {
        
if (http_request.readyState == 4// 判断对象状态
            if (http_request.status == 200// 信息已经成功返回,开始处理信息
                alert(http_request.responseText);
            }
 else //页面不正常
                alert("您所请求的页面有异常。");
            }

        }

    }

    
function userCheck() {
        
var f = document.form1;
        
var username = f.username.value;
        
if(username==""{
            window.alert(
"用户名不能为空。");
            f.username.focus();
            
return false;
        }

        
else {
            send_request(
'sample1_2.php',username);
        }

    }

</script>
</head>

<body>
<br>
<TABLE align="center" style="border:1px solid blue;">
<TR>
    
<TD valign="middle"><br>
    
<form name="form1" action="" method="post">
用户名:
<input type="text" name="username" value="">&nbsp;
<input type="button" name="check" value="唯一性检查" onClick="userCheck()">
<input type="submit" name="submit" value="提交">
</form>
    
</TD>
</TR>
</TABLE>


</body>
</html>

 2.后台处理代码

sample1_2.php

 

<?php
//利用mb_convert_encoding 函数处理中文问题
$username=mb_convert_encoding(urldecode(@$HTTP_POST_VARS["username"]),"gb2312", "utf-8");
if($username=="张三"echo mb_convert_encoding("该用户名已经被人使用,请选择其他!","utf-8", "gb2312");
else echo mb_convert_encoding("该用户名可用","utf-8", "gb2312");
?>

3.运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值