天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Ajax實(shí)時(shí)驗(yàn)證用戶名/郵箱等是否已經(jīng)存在的代碼打包

今天分享一個(gè)“利用Ajax技術(shù)來(lái)檢測(cè)用戶名是否存在”的例子。
利用Ajax技術(shù)來(lái)檢測(cè)用戶名是否存在的原理流程圖:

最終結(jié)果截圖:

 


復(fù)制代碼 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ajax檢測(cè)用戶名</title>
<script type="text/Javascript" src="ajax.js"></script>
</head>
<body>
<form name="myform">
用戶名:<input type="text" name="user" onblur="checkname();">
<span id="checkbox"></span>
</form>
</body>
</html>

代碼解釋:
①實(shí)現(xiàn)該功能的核心代碼在ajax.js,需要另外引進(jìn)
②給form命名,因?yàn)楹竺嫖覀冃枰肑S來(lái)取得input框中的value
③給input框添加一個(gè)“onblur”事件,即當(dāng)“焦點(diǎn)”失去時(shí)觸發(fā)該事件(即流程圖的“觸發(fā)控件”)
④<span id="checkbox"></span>用來(lái)放從服務(wù)器發(fā)送回來(lái)的數(shù)據(jù)(即“用戶名已存在”等)
復(fù)制代碼 代碼如下:
<?php
mysql_connect("localhost",'root','');
mysql_select_db('test');
$sql="select * from ajax where name='$_GET[id]'";
$query=mysql_query($sql);
if(is_array(mysql_fetch_array($query))){
echo "<font color=red>用戶名已存在</font>";
}else{
echo "<font color=green>用戶名可以使用</font>";
}
?>

代碼解釋:
通過(guò)ajax的open方法,將用戶輸入”用戶名“通過(guò)id傳遞給進(jìn)來(lái)(即$_GET[id]),此時(shí)將對(duì)指定的數(shù)據(jù)庫(kù)表中進(jìn)行查詢,檢查是否有存在該“用戶名”
ajax.js
復(fù)制代碼 代碼如下:
// JavaScript Document
var XHR; //定義一個(gè)全局對(duì)象
function createXHR(){ //首先我們得創(chuàng)建一個(gè)XMLHttpRequest對(duì)象
if(window.ActiveXObject){//IE的低版本系類
XHR=new ActiveXObject('Microsoft.XMLHTTP');//之前IE壟斷了整個(gè)瀏覽器市場(chǎng),沒(méi)遵循W3C標(biāo)準(zhǔn),所以就有了這句代碼。。。但I(xiàn)E6之后開(kāi)始有所改觀
}else if(window.XMLHttpRequest){//非IE系列的瀏覽器,但包括IE7 IE8
XHR=new XMLHttpRequest();
}
}
function checkname(){
var username=document.myform.user.value;
createXHR();
XHR.open("GET","checkname.php?id="+username,true);//true:表示異步傳輸,而不等send()方法返回結(jié)果,這正是ajax的核心思想
XHR.onreadystatechange=byhongfei;//當(dāng)狀態(tài)改變時(shí),調(diào)用byhongfei這個(gè)方法,方法的內(nèi)容我們另外定義
XHR.send(null);
}
function byhongfei(){
if(XHR.readyState == 4){//關(guān)于Ajax引擎對(duì)象中的方法和屬性,可以參考我的另一篇博文:http://www.cnblogs.com/hongfei/archive/2011/11/29/2265377.html
if(XHR.status == 200){
var textHTML=XHR.responseText;
document.getElementById('checkbox').innerHTML=textHTML;
}
}
}

代碼解釋:
①首先我們需要聲明一個(gè)ajax引擎的對(duì)象:XHR(隨便命名一個(gè))
②因?yàn)槲④浀牡桶姹綢E和其他的瀏覽器創(chuàng)建ajax對(duì)象的方式不一樣,現(xiàn)在IE和其他瀏覽器的市場(chǎng)份額幾乎各占一半,所以我們得兩方面都考慮到,IE-->ActiveXObject;其他-->XMLHttpRequest。我將她封裝在一個(gè)函數(shù)中:createXHR
③我們?cè)趇ndex.html中指定的當(dāng)失去“焦點(diǎn)”時(shí)就會(huì)觸發(fā)checkname()函數(shù)。那么我們?nèi)绾螌⒂脩糨斎氲摹坝脩裘辈东@呢?這里,利用js即可輕松捕獲到document.myform.user.value(現(xiàn)在知道為何給form和input命名了吧,這一步對(duì)應(yīng)流程圖的“獲得填寫內(nèi)容”),有興趣的博友,可以試試在createXHR()的前一行敲行代碼(alert(username)),將捕獲到的用戶名彈出試試看。
④Ajax引擎有幾個(gè)方法和屬性(可以參考我的另一篇博文:看圖理解:普通交互方式和Ajax交互方式區(qū)別),使用之前我們得先調(diào)用函數(shù)craateXHR創(chuàng)建一個(gè)ajax對(duì)象
⑤有了ajax對(duì)象,有三個(gè)方法是必不可少的:open()、onreadystatechange、send()。
將請(qǐng)求發(fā)送到服務(wù)器,要使用open ()和send()方法
open()方法的第一個(gè)參數(shù),指示采用GET或者POST方式進(jìn)行傳輸。。。。。。
open()方法的第二個(gè)參數(shù),指示要請(qǐng)求的URL地址(這里我們請(qǐng)求的是checkname.php文件),可以是絕對(duì)或相對(duì)地址
open()方法的第三個(gè)參數(shù)async指示是否采用異步請(qǐng)求,true為采用,這種情況下,通過(guò)ajax、js無(wú)需等待服務(wù)器響應(yīng),而是:①在等待服務(wù)器響應(yīng)的同時(shí)執(zhí)行其他腳本②當(dāng)響應(yīng)就緒后對(duì)響應(yīng)進(jìn)行處理。一般對(duì)一些小型的請(qǐng)求,async=false也是可以的,但此時(shí)就不要編寫onreadystatechange 函數(shù)了
onreadystatechange事件:當(dāng)ajax的屬性readyState改變時(shí),就觸發(fā)此事件。在此事件中,當(dāng)服務(wù)器響應(yīng)已做好被處理的準(zhǔn)備時(shí)(即readyState=4且status=200時(shí)),我們規(guī)定要讓服務(wù)器做什么任務(wù),這里我們規(guī)定將從數(shù)據(jù)庫(kù)檢索到的結(jié)果輸出到id為”checkbox“的span標(biāo)簽中。
⑥通過(guò)checkname.php,查詢數(shù)據(jù)庫(kù)后,將得到查詢結(jié)果(即服務(wù)器的響應(yīng),對(duì)應(yīng)流程圖中的”查詢數(shù)據(jù)庫(kù)“),此時(shí)數(shù)據(jù)還在ajax引擎中,如需獲得該來(lái)自服務(wù)器的響應(yīng),我們需要使用XMLHttpRequest對(duì)象的responText或responseXML屬性,并通過(guò)DOM屬性innerHTML將從服務(wù)器響應(yīng)回來(lái)的數(shù)據(jù)設(shè)置為id=”checkbox“的span標(biāo)簽的值
注:利用ajax監(jiān)測(cè)郵箱是否存在一個(gè)道理,我們還可以利用ajax實(shí)時(shí)監(jiān)測(cè)用戶輸入的密碼強(qiáng)度,此時(shí),需要用到可以把onblur事件改為onfocus事件。
原創(chuàng) cnblogs 小飛

源碼打包下載 /201112/yuanma/checkname_php.rar

php技術(shù)Ajax實(shí)時(shí)驗(yàn)證用戶名/郵箱等是否已經(jīng)存在的代碼打包,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲第一页视频 | 97夜夜澡人人爽人人模人人喊 | 俄罗斯大白屁股 | 我和黑帮老大第365天第2季在线 | 97精品国产亚洲AV超碰 | 男神插曲女生软件完整版 | 亚洲午夜电影 | 欧洲最大无人区免费高清完整版 | 九九免费的视频 | 爱看吧孕妇网 | 日本VA在线视频播放 | 视频一区国产在线二区 | 2019香蕉在线观看直播视频 | 国产精品毛片在线视频 | 男总裁憋尿PLAY灌尿BL | 三级全黄a| 亚洲色爽视频在线观看 | 日本理论片和搜子同居的日子2 | 国产欧美精品国产国产专区 | 国产精品AV无码免费播放 | 国产成久久免费精品AV片天堂 | 久草国产在线播放 | 99蜜桃在线观看免费视频网站 | 精品一产品大全 | 中文字幕亚洲第一页 | 跳蛋按摩棒玉势PLAY高H | 里番acg纲手的熟蜜姬训练场 | 成人精品视频 | 亚洲伊人精品综合在合线 | 欧美日韩国产码在线 | 日本高清天码一区在线播放 | 日本阿v直播在线 | 俄罗斯性孕妇孕交 | 亚洲欧美精品无码一区二在线 | 久久日本精品在线热 | 三级黄色在线免费观看 | 魅男mangay| 亚洲 天堂 欧美 日韩 国产 | 国产精品爽爽久久久久久蜜桃网站 | 国产成人在线观看网站 | 国产免费人视频在线观看免费 |