ajax做用:ajax 是在不從新加載整個頁面的狀況下與服務器交換數據並更新部分網頁的技術.(實現瀏覽器與服務器之間的數據交互,實現頁面的無刷新請求服務器,提升用戶體驗)javascript
基本使用:php
1.建立ajax對象:html
new XMLHttpRequest() //普通瀏覽器使用,ie瀏覽器有特殊java
2.建立事件函數(處理服務器返回的結果):
mysql
onreadystatechangeajax
readyState ajax對象狀態:0:請求未初始化 1:服務器鏈接已創建 2:請求已接收 3:請求處理中 4請求已完成,且響應sql
status 響應碼:200:'ok' 404:未找到頁面 403:權限不足json
responseText 接受服務器的返回的數據數組
3.初始化ajax請求
瀏覽器
get --- xmlhttp.open('GET',1.php?a=1&b=2&c-3',true);
post --- xmlhttp.setRequestHeader('content-type','application/x-www-form-urlencoded"):
xmlhttp.open('POST','1.php',true);
4.發送ajax請求 --- send()
服務器返回
echo 普通的字符串
普通html文件
返回xml字符串
索引數組
關聯數組
注意事項
同源策略-當前頁面要和服務器的協議地址和端口都要相同
post發送ajax請求
--- setRequestHeader("content-type','application/x-www-from-urlencoded");
--- 發送參數 send("a=100&b=www")
firebug的使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
例子:
<script type=
"text/javascript"
>
//1.建立ajax對象
var
x =
new
XMLHttpRequest;
//2.觸發事件
x.onreadystatechange =
function
(){
// on ready 準備 state情況 changge
if
(x.readyState == 4 && x.status == 200){
console.log(x.responseText);
//返回的結果
}
}
//3.初始化
x.open(
'GET'
,
'fuxi.php?id=100'
,
true
);
//true 異步 false是同步
//4 發送
x.send();
//發送ajax
若是是post 方式
3步和4步發生改變
x.open(
'POST'
,
'3.php'
,
true
);
x.setRequestHeader(
'content-type'
,
'application/x-www-form-urlencoded'
);重要
x.send(
'a=100&b=200'
);
|
配合php PDO預處理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php
$id
=
$_GET
[
'id'
];
$pdo
=
new
PDO(
'mysql:host=localhost;dbname=pass;charset=utf8'
,
'root'
,
'123456'
);
//準備預處理
$stmt
=
$pdo
->prepare(
'select * from phones where id = ?'
);
//賦值
$arr
= [
$id
];
//執行
$stmt
->execute(
$arr
);
//獲取結果
$res
=
$stmt
->fetch(PDO::FETCH_ASSOC);
// var_dump($res);
$row
= json_encode(
$res
);
echo
$row
;
|