html+js+php一次原始的Ajax請(qǐng)求示例
更新時(shí)間:2014年04月06日 17:18:59 作者:
雖然jquery的ajax要比原始的寫法容易得多,我們還是應(yīng)該了解原始的寫法,下面有個(gè)不錯(cuò)的示例,大家可以參考下
今天給大家呈現(xiàn)一個(gè)原始的Ajax請(qǐng)求過(guò)程,雖然jquery的ajax要比原始的寫法容易得多,我們還是應(yīng)該了解原始的寫法,下面我分為html、js、php三個(gè)小文件來(lái)展示,數(shù)據(jù)庫(kù)自己寫。
首先是html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>一次簡(jiǎn)單的Ajax請(qǐng)求</title>
<script language="javascript" src="js/ajaxTest.js"></script>
</head>
<body>
用戶名:<input id="userName" type="text"></input>
密碼:<input id="passWord" type="password"></input>
<span id="showInputError" style="color:red;font-weight: bold;"></span><br>
<input type="button" value="登錄" onclick="showSelect()">
</body>
</html>
然后是js:
/**
* 普通Ajax的完整訪問(wèn)過(guò)程
*/
var xmlHttp
function showSelect()//登錄按鈕點(diǎn)擊后執(zhí)行這個(gè)方法
{
var userName=document.getElementById("userName").value;
var passWord=document.getElementById("passWord").value;
if (userName.length==0)//驗(yàn)證輸入用戶名是否為空
{
document.getElementById("showInputError").innerHTML="用戶名不能為空";//提示用戶名不能為空
return
}
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="ajaxTest.php"http://設(shè)置要提交action到后臺(tái)的那個(gè)處理請(qǐng)求的文件名
url=url+"?userName="+userName+"&passWord="+passWord//為這個(gè)路徑加上參數(shù)用戶名和密碼
url=url+"&sid="+Math.random()//為這個(gè)路徑加上一個(gè)隨機(jī)數(shù)
xmlHttp.onreadystatechange=stateChanged//每當(dāng) readyState 改變時(shí),就會(huì)觸發(fā) onreadystatechange 事件,readyState 屬性存有 XMLHttpRequest 的狀態(tài)信息
xmlHttp.open("GET",url,true)//定義請(qǐng)求的參數(shù)
xmlHttp.send(null)//發(fā)送請(qǐng)求
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")//
//0: 請(qǐng)求未初始化
//1: 服務(wù)器連接已建立
//2: 請(qǐng)求已接收
//3: 請(qǐng)求處理中
//4: 請(qǐng)求已完成,且響應(yīng)已就緒
{ var a= xmlHttp.responseText;//把相應(yīng)數(shù)據(jù)賦值給a
if(a=="yes"){
self.location='Main.php';//跳轉(zhuǎn)到Main.php
}else{
document.getElementById("showInputError").innerHTML="用戶名或密碼錯(cuò)誤";//提示用戶名或密碼錯(cuò)誤
}
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
最后是php:
<?php
$userName=$_GET["userName"];
$pwd=$_GET["passWord"];
$con = mysql_connect("localhost","root","123456");
mysql_select_db("my_test", $con);
mysql_query("set names utf8");
$sql="SELECT * FROM Userinfo WHERE userName='".$userName."' AND pwd='".$pwd."'";
$result=mysql_query($sql);
$select=mysql_num_rows($result);
$a="no";
if ($select>0){$a="yes";}
echo $a;
mysql_close($con);
?>
首先是html:
復(fù)制代碼 代碼如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>一次簡(jiǎn)單的Ajax請(qǐng)求</title>
<script language="javascript" src="js/ajaxTest.js"></script>
</head>
<body>
用戶名:<input id="userName" type="text"></input>
密碼:<input id="passWord" type="password"></input>
<span id="showInputError" style="color:red;font-weight: bold;"></span><br>
<input type="button" value="登錄" onclick="showSelect()">
</body>
</html>
然后是js:
復(fù)制代碼 代碼如下:
/**
* 普通Ajax的完整訪問(wèn)過(guò)程
*/
var xmlHttp
function showSelect()//登錄按鈕點(diǎn)擊后執(zhí)行這個(gè)方法
{
var userName=document.getElementById("userName").value;
var passWord=document.getElementById("passWord").value;
if (userName.length==0)//驗(yàn)證輸入用戶名是否為空
{
document.getElementById("showInputError").innerHTML="用戶名不能為空";//提示用戶名不能為空
return
}
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="ajaxTest.php"http://設(shè)置要提交action到后臺(tái)的那個(gè)處理請(qǐng)求的文件名
url=url+"?userName="+userName+"&passWord="+passWord//為這個(gè)路徑加上參數(shù)用戶名和密碼
url=url+"&sid="+Math.random()//為這個(gè)路徑加上一個(gè)隨機(jī)數(shù)
xmlHttp.onreadystatechange=stateChanged//每當(dāng) readyState 改變時(shí),就會(huì)觸發(fā) onreadystatechange 事件,readyState 屬性存有 XMLHttpRequest 的狀態(tài)信息
xmlHttp.open("GET",url,true)//定義請(qǐng)求的參數(shù)
xmlHttp.send(null)//發(fā)送請(qǐng)求
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")//
//0: 請(qǐng)求未初始化
//1: 服務(wù)器連接已建立
//2: 請(qǐng)求已接收
//3: 請(qǐng)求處理中
//4: 請(qǐng)求已完成,且響應(yīng)已就緒
{ var a= xmlHttp.responseText;//把相應(yīng)數(shù)據(jù)賦值給a
if(a=="yes"){
self.location='Main.php';//跳轉(zhuǎn)到Main.php
}else{
document.getElementById("showInputError").innerHTML="用戶名或密碼錯(cuò)誤";//提示用戶名或密碼錯(cuò)誤
}
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
最后是php:
復(fù)制代碼 代碼如下:
<?php
$userName=$_GET["userName"];
$pwd=$_GET["passWord"];
$con = mysql_connect("localhost","root","123456");
mysql_select_db("my_test", $con);
mysql_query("set names utf8");
$sql="SELECT * FROM Userinfo WHERE userName='".$userName."' AND pwd='".$pwd."'";
$result=mysql_query($sql);
$select=mysql_num_rows($result);
$a="no";
if ($select>0){$a="yes";}
echo $a;
mysql_close($con);
?>
您可能感興趣的文章:
- php中如何判斷一個(gè)網(wǎng)頁(yè)請(qǐng)求是ajax請(qǐng)求還是普通請(qǐng)求
- PHP處理Ajax請(qǐng)求與Ajax跨域問(wèn)題
- php判斷是否為ajax請(qǐng)求的方法
- jQuery通過(guò)ajax請(qǐng)求php遍歷json數(shù)組到table中的代碼(推薦)
- Ajax請(qǐng)求PHP后臺(tái)接口返回信息的實(shí)例代碼
- PHP開發(fā)框架kohana中處理ajax請(qǐng)求的例子
- php檢查是否是ajax請(qǐng)求的方法
- 在php中判斷一個(gè)請(qǐng)求是ajax請(qǐng)求還是普通請(qǐng)求的方法
- 原生javascript的ajax請(qǐng)求及后臺(tái)PHP響應(yīng)操作示例
- php下的原生ajax請(qǐng)求用法實(shí)例分析
相關(guān)文章
活到老學(xué)到老學(xué)習(xí)AJAX跨域(三)
學(xué)習(xí)AJAX其實(shí)有個(gè)很重要的應(yīng)用,就是為了執(zhí)行另外幾個(gè)站點(diǎn)的ASP,返回結(jié)果。通過(guò)本文給大家介紹ajax跨域相關(guān)知識(shí),需要的朋友參考下2016-02-02關(guān)于ajax的使用方法_例題、ajax的數(shù)據(jù)處理
下面小編就為大家?guī)?lái)一篇關(guān)于ajax的使用方法_例題、ajax的數(shù)據(jù)處理。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05ajax實(shí)現(xiàn)用戶名校驗(yàn)的傳統(tǒng)和jquery的$.post方式(實(shí)例講解)
下面小編就為大家分享一篇ajax實(shí)現(xiàn)用戶名校驗(yàn)的傳統(tǒng)和jquery的$.post方式的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-12-12ajax數(shù)據(jù)返回進(jìn)行遍歷的實(shí)例講解
今天小編就為大家分享一篇ajax數(shù)據(jù)返回進(jìn)行遍歷的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08Ajax請(qǐng)求二進(jìn)制流進(jìn)行處理(ajax異步下載文件)的簡(jiǎn)單方法
最近做項(xiàng)目遇到這樣的需求:管理后臺(tái)需要隨時(shí)下載數(shù)據(jù)報(bào)表,數(shù)據(jù)要實(shí)時(shí)生成后轉(zhuǎn)換為excel下載。怎么解決這個(gè)問(wèn)題呢?下面小編給大家分享Ajax請(qǐng)求二進(jìn)制流進(jìn)行處理(ajax異步下載文件)的簡(jiǎn)單方法,一起看看吧2017-09-09在Ajax中使用get和post所遇到的問(wèn)題及解決辦法
本文重點(diǎn)給大家介紹在ajax中使用get和post所遇到的問(wèn)題及解決辦法,及get請(qǐng)求和post請(qǐng)求的區(qū)別簡(jiǎn)單介紹,本文介紹的非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-06-06