當我們註冊一個使用者時,會即時提示該使用者的資訊是否可用,這就是ajax的應用,很久以前就看過這個實現了,今天又看了一遍,給記錄下來O(∩_∩)O哈!
我在我原來的部落格上也有這個介紹……http://hi.baidu.com/%BD%A3%BE%B2%B7%E3/blog/item/a8ddd2eb8a379d00fdfa3c06.html
先介紹下ajax中$.get,由於$.post用法和$.get大同小異就不再介紹了(來自http://www.w3school.com.cn):
這是一個簡單的 GET 請求功能以取代複雜 $.ajax 。請求成功時可調用回呼函數。如果需要在出錯時執行函數,請使用 $.ajax。
$(selector).get(url,data,success(response,status,xhr),dataType)
參數 |
描述 |
url |
必需。規定將請求發送的哪個 URL。 |
data |
可選。規定連同請求發送到伺服器的資料。 |
success(response,status,xhr) |
可選。規定當請求成功時啟動並執行函數。 額外的參數:
- response - 包含來自請求的結果資料
- status - 包含請求的狀態
- xhr - 包含 XMLHttpRequest 對象
|
dataType |
可選。規定預計的伺服器響應的資料類型。 預設地,jQuery 將智能判斷。 可能的類型:
- "xml"
- "html"
- "text"
- "script"
- "json"
- "jsonp"
|
請求 test.php 網頁,忽略傳回值:
$.get("test.php");
更多樣本例子 1
請求 test.php 網頁,傳送2個參數,忽略傳回值:
$.get("test.php", { name: "John", time: "2pm" } );
例子 2
顯示 test.php 傳回值(HTML 或 XML,取決於傳回值):
$.get("test.php", function(data){ alert("Data Loaded: " + data);});
例子 3
顯示 test.cgi 傳回值(HTML 或 XML,取決於傳回值),添加一組請求參數:
$.get("test.cgi", { name: "John", time: "2pm" }, function(data){ alert("Data Loaded: " + data); });
下面貼上My Code:
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>使用者註冊</title><script type="text/javascript" src="jquery/jquery-1.5.2.js"></script><script type="text/javascript">$(document).ready(function(){$("#username").focus();$("#username").keyup(function(){ name= $("#username").val();//val()方法返回或設定被選元素的值。if(len(name)< 4)//調用下面的自訂len函數 ~\(≧▽≦)/~啦啦啦 $("#username1").html("<font color=red>註冊名稱必須大於等於2位</font>"); else$("#username1").html("<font color=red>符合要求</font>");//html() 方法返回或設定被選元素的內容 (inner HTML)。});$("#username").blur(function(){ name= $("#username").val();$.get("t1.php", { username:name } ,function(data){//判斷資料庫中是否存在此使用者名稱 重點$.get,$.post t1.php在下面 if(data==1) {$("#username1").html("<font color=green>符合要求</font>");}else {$("#username1").html("<font color=green>已被佔用</font>");}});});});function len(s) {//若為漢字之類的字元則佔兩個var l = 0;var a = s.split("");for (var i=0;i<a.length;i++) { if (a[i].charCodeAt(0)<299) { l++; } else { l+=2; }}return l;}</script></head><body><form name="fram" action="register.php" onsubmit="return docheck();"><table width="330" border="0" align="center" cellpadding="5" bgcolor="#eeeeee"><tr> <td>使用者名稱:</td> <td><input name="username" type="text" id="username" /></td><td><div id="username1"></div></td> </tr></table></form></body></html>
t1.php:
<?php$link=mysql_connect("localhost","root","");mysql_select_db("test");mysql_query("set names utf8");//$sql="select * from user where user='".$_GET['username']."'";// $result=mysql_query($sql) or die(mysql_error());$num=mysql_affected_rows();if($num==0)$msg=1;else $msg=0;echo $msg;//傳回值mysql_close($link);?>