login.html:
<!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>Untitled Document</title>
<script type="text/javascript">
function validation()
{
var name = document.getElementById("username").value;
var pwd = document.getElementById("password").value;
var postStr = "username="+name+"&password="+pwd;
ajax("demo.php",postStr,function(result){
document.getElementById("info").innerHTML=result;
});
}
function ajax(url,postStr,onsuccess)
{
var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); //創建XMLHTTP對象,考慮兼容性。XHR
xmlhttp.open("POST", url, true); //“准備”向服務器的GetDate1.ashx發出Post請求(GET可能會有緩存問題)。這里還沒有發出請求
//AJAX是異步的,並不是等到服務器端返回才繼續執行
xmlhttp.onreadystatechange = function ()
{
if (xmlhttp.readyState == 4) //readyState == 4 表示服務器返回完成數據了。之前可能會經歷2(請求已發送,正在處理中)、3(響應中已有部分數據可用了,但是服務器還沒有完成響應的生成)
{
if (xmlhttp.status == 200) //如果Http狀態碼為200則是成功
{
onsuccess(xmlhttp.responseText);
}
else
{
alert("AJAX服務器返回錯誤!");
}
}
}
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
//不要以為if (xmlhttp.readyState == 4) {在send之前執行!!!!
xmlhttp.send(postStr); //這時才開始發送請求。並不等於服務器端返回。請求發出去了,我不等!去監聽onreadystatechange吧!
}
</script>
</head>
<body>
用戶名:<input id="username" name="username" type="text" />
<BR />
密碼:<input id="password" name="password" type="password" />
<BR />
<input type="button" name="button" value="提交" onclick="validation();" />
<div id="info"></div>
</body>
</html>
PHP:
<?php
$con = mysql_connect('localhost','root','123456');
if(!$con)
{
die('error:'.mysql_error());
}
mysql_select_db("test",$con);
$result = mysql_query("select * from user where USERNAME='$_POST[username]'");
while($row = mysql_fetch_array($result))
{
if($row['PWD'] == $_POST['password'])
{
echo 'success';
}
else
{
echo 'error';
}
}
?>