實現(xiàn)ajax需要三個文件,一個是html的表單文件,一個是js的核心文件,一個是php的后臺文件。

成都創(chuàng)新互聯(lián)公司"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!成都創(chuàng)新互聯(lián)公司具備承接各種類型的成都網(wǎng)站設(shè)計、網(wǎng)站制作項目的能力。經(jīng)過10年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評。
下面的是html文件,當鍵盤按下時觸發(fā)showHint方法,在showHint方法中會有ajax的核心內(nèi)容,實例化,獲取地址,獲取數(shù)據(jù)并展示等等。
復制代碼 代碼如下:
html
head
script src="clienthint.js"/script
/head
body
form
First Name:
input type="text" id="txt1"
onkeyup="showHint(this.value)"
/form
pSuggestions: span id="txtHint"/span/p
/body
/html
下面是js的內(nèi)容clienthint.js。
復制代碼 代碼如下:
var xmlHttp
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML=""
return
}
//獲取xmlHttpObject對象,如果為空,提示瀏覽器不支持ajax
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
//獲取url
var url="gethint.php"
url=url+"?q="+str
url=url+"sid="+Math.random()
//回調(diào)函數(shù),執(zhí)行動作
xmlHttp.onreadystatechange=stateChanged
//open
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
//將獲取的信息插入到txtHint中
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
//獲取xml對象
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的內(nèi)容。根據(jù)ajax對象傳入的參數(shù),獲取相應(yīng)的數(shù)據(jù)。
復制代碼 代碼如下:
?php
// Fill up array with names
$a[]="Anna";
$a[]="Brittany";
$a[]="Cinderella";
$a[]="Diana";
$a[]="Eva";
$a[]="Fiona";
$a[]="Gunda";
$a[]="Hege";
$a[]="Inga";
$a[]="Johanna";
$a[]="Jiqing";
$a[]="Kitty";
$a[]="Linda";
$a[]="Nina";
$a[]="Ophelia";
$a[]="Petunia";
$a[]="Amanda";
$a[]="Raquel";
$a[]="Cindy";
$a[]="Doris";
$a[]="Eve";
$a[]="Evita";
$a[]="Sunniva";
$a[]="Tove";
$a[]="Unni";
$a[]="Violet";
$a[]="Liza";
$a[]="Elizabeth";
$a[]="Ellen";
$a[]="Wenche";
$a[]="Vicky";
//get the q parameter from URL
$q=$_GET["q"];
//lookup all hints from array if length of q0
if (strlen($q) 0)
{
$hint="";
for($i=0; $icount($a); $i++)
{
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
{
if ($hint=="")
{
$hint=$a[$i];
}
else
{
$hint=$hint." , ".$a[$i];
}
}
}
}
//Set output to "no suggestion" if no hint were found
//or to the correct values
if ($hint == "")
{
$response="no suggestion";
}
else
{
$response=$hint;
}
//output the response
echo $response;
?
首先先要理解ajax的原理,ajax是利用javascript異步http請求發(fā)送數(shù)據(jù),至于數(shù)據(jù)處理還需要服務(wù)端處理。換句話說ajax只能負責發(fā)送數(shù)據(jù)。jquery中的ajax方法的格式:
$.ajax({
type: 'POST',//發(fā)送數(shù)據(jù)類型 post或者get
url: url ,//數(shù)據(jù)要發(fā)送的地址
data: data ,//發(fā)送的數(shù)據(jù){'val1':val1,'val2':val2}
success: success ,//數(shù)據(jù)請求成功的回調(diào)
dataType: dataType//返回數(shù)據(jù)的類型(json xml等)
});
其實就是發(fā)送一個網(wǎng)絡(luò)請求,服務(wù)端輸出的內(nèi)容就是響應(yīng)的內(nèi)容,如jQuery
$.ajax(
{
url:?'',?????//?請求URL
data:?'',????//?請求時攜帶的參數(shù)
type:?'',????//?請求方式,?GET/POST
dataType:?'',//?響應(yīng)數(shù)據(jù)格式,?text/json
success:?r?=?{
//?請求成功時回調(diào)函數(shù),參數(shù)?r?為服務(wù)端響應(yīng)的內(nèi)容
console.log(r);??//?就是你說的后臺數(shù)據(jù)
},
error:?()?=?{
console.error('fail');?//?請求失敗
}
}
)
//?服務(wù)端響應(yīng)內(nèi)容
$data?=?[];???//?從數(shù)據(jù)庫中獲取的數(shù)據(jù)
echo?json_encode($data);???//?響應(yīng)客戶端,?數(shù)據(jù)格式為?JSON
舉個例子:你想在用戶點擊時,把 apple 這個字符串,通過前端傳給后端。
前端,用 jQuery 舉例:
$('button').click(function () {
$.ajax({
url: '/xxx',
method: 'post',
dataType: 'json',
data: {fruit: 'apple'}
}).done(function (res) {
// 成功后的回調(diào)
}).fail(function (err) {
// 失敗后的回調(diào)
});
});
后端 PHP 處理:
$fruit = $_POST['fruit']; // 獲取從 ajax 傳過來的 fruit 的值,這里是 apple。
如果你想在前端重新顯示這個字符串 apple,那么你要用 PHP 把數(shù)據(jù)返回給頁面,然后在上面 “// 成功后的回調(diào)” 里面,補充邏輯代碼。
例如 PHP 把 apple 返回給前端:
return json_encode(array('fruit' = 'apple'));
前端回調(diào)處理:
// 成功后的回調(diào)
alert(res.fruit); // 彈框顯示 “apple”
實際上,$_POST 能夠獲取所有從前端用 post 方式提交過來的數(shù)據(jù),不管你是頁面刷新方式,還是 ajax(jQuery 才叫 ajax,實際上它是 XMLHttpRequest,異步非阻塞的請求方式)
分享標題:php數(shù)據(jù)用ajax,php使用
網(wǎng)站鏈接:http://chinadenli.net/article9/dsisiih.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)頁設(shè)計公司、外貿(mào)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、云服務(wù)器、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)