– DOM cho việc hiển thị động và tương tác– XML + XSLT cho việc chuyển đổi dữ liệu và thao tác – XMLHttpRequest cho việc truy cập và nhận dữ liệu – JavaScript được xem như chất kết dính c
Trang 1PHP & Ajax
GV: Lương Trần Hy Hiến, khoa CNTT, ĐH Sư phạm TpHCM
HIENLTH - FIT of HCMUP
Trang 2Nội dung
• Giới thiệu
• Hoạt động của AJAX
• Đối tượng XMLHttpRequest
• PHP & jQuery Ajax
• Các ví dụ minh họa
HIENLTH - FIT of HCMUP
Trang 3Ajax – Đặt vấn đề
HIENLTH - FIT of HCMUP
Trang 4Ajax – Đặt vấn đề
Làm thế nào để thay đổi nội dung mà
không phải reload lại toàn trang web?
HIENLTH - FIT of HCMUP
Trang 6• AJAX: A synchronous J avaScript A nd X ML
• AJAX không phải là ngôn ngữ mới mà là một cách mới sử dụng các ngôn ngữ đã có.
• AJAX giúp ta tạo các trang web nhanh hơn, tiện lợi hơn, thân thiện hơn khi sử dụng.
• Ajax tập hợp nhiều công nghệ với thế mạnh
riêng để tạo thành một sức mạnh mới.
HIENLTH - FIT of HCMUP
Trang 7– DOM cho việc hiển thị động và tương tác
– XML + XSLT cho việc chuyển đổi dữ liệu và thao tác
– XMLHttpRequest cho việc truy cập và nhận dữ liệu
– JavaScript được xem như chất kết dính cho các thành phần trên
• AJAX sử dụng XML và HttpRequest
HIENLTH - FIT of HCMUP
Trang 8– Các chức năng Back và Bookmark (Favourites) của
trình duyệt bị vô hiệu hóa
– Buộc phải sử dụng JavaScript → Có những vấn đề liên quan đến bảo mật
HIENLTH - FIT of HCMUP
Trang 9Web Server
Datastore, backend processing…
– Server thực thi các thao tác:
HTML + CSS
Trang 10Mô hình truyền thống
• Cách tiếp cận này có nhiều điểm hạn chế nhất là việc tương tác giữa user và ứng dụng web
– Mỗi bước thực hiện thì user phải chờ
– User thấy được ứng dụng “trip back” server
HIENLTH - FIT of HCMUP
User activity
User activity
System processing System processing
Trang 11AJAX – Mô hình hoạt động
• AJAX thực hiện tương tác với máy chủ bằng cách sử dụng đối tượng XMLHttpRequest, nhận kết quả về dưới dạng XML (hoặc text, JSON,…)
và phân tích kết quả bằng mô hình DOM
• Tương tác giữa AJAX và giao diện người dùng được thực hiện thông qua các mã JavaScript và HTML + CSS
HIENLTH - FIT of HCMUP
Trang 12Mô hình Ajax
• Mỗi hành động của user thường tạo HTTP request
là hình thức của lời gọi JavaScript đến Ajax engine
Client -side processing
System processing System processing
Time
Server
Browser UI
Ajax engine
Trang 13AJAX – So sánh với ứng dụng web truyền thống
AJAX – So sánh với ứng dụng web truyền thống
Web sử dụng AJAXWeb truyền thốngHIENLTH - FIT of HCMUP
Trang 14AJAX – Cài đặt và sử dụng
1 Khởi tạo đối tượng XMLHttpRequest
2 Gán giá trị cho đối tượng XMLHttpRequest và
gửi về web server
3 Nhận phản hồi từ web server và xử lý kết quả
nhận được
4 Viết xử lý ở web server
HIENLTH - FIT of HCMUP
Trang 15Tạo đối tượng
• Với IE5.6: sử dụng Microsoft.XMLHTTP
XMLHttp =
new ActiveXObject("Microsoft.XMLHTTP")
• Với trình duyệt khác: XMLHttpRequest
XMLHttp=new XMLHttpRequest ()
HIENLTH - FIT of HCMUP
Trang 16Tạo đối tượng
Trang 17Đối tượng XMLHttpRequest
• Các phương thức cơ bản
– open(“method,”url”) : Thiết lập yêu cầu đến server (địa chỉ trang cần kết nối đến)
– send() : Gửi yêu cầu đến server.
– abort() : Hủy yêu cầu hiện tại
HIENLTH - FIT of HCMUP
Trang 20Đối tượng XMLHttpRequest
• Các thuộc tính
– readyState: Trạng thái hiện tại của đối tượng
– onreadystatechange: hàm xử lý sự kiện cho một
sự kiện phát sinh khi có thay đổi trạng thái
– responseText: Chuỗi dữ liệu trả về
Trang 21xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4){
//Xử lí dữ liệu nhận được
}}
State Description
0 Request chưa được khởi tạo
1 Request đã được thiết lập
2 Request đã được gửi
3 Request đang được xử lí
4 Request được xử lí xong
HIENLTH - FIT of HCMUP
Trang 22XMLHttpRequest–– Gửi yêu cầu đến máy chủ (tt)
• Có 2 phương thức để gửi yêu cầu: GET và POST
HIENLTH - FIT of HCMUP
Trang 23Gửi yêu cầu đến Web server dùng phương thức GET
HIENLTH - FIT of HCMUP
Trang 24Gửi yêu cầu đến Web server dùng phương thức POST
HIENLTH - FIT of HCMUP
Trang 25Gửi yêu cầu đến Web server
HIENLTH - FIT of HCMUP
Trang 26XMLHttpRequest– Nhận yêu phản hồi từ máy chủ
• Để nhận thông điệp trả lời từ server, sử dụng 2 thuộc tính sau của đối tượng XMLHttpRequest
– responseText: nội dung (phần thân) của thông điệp trả lời
– responseXML: chứa một XML DOM document nếu thông điệp trả về có kiểu nội dung (content type) là “text/xml” hay
“application/xml”
HIENLTH - FIT of HCMUP
Trang 27Đối tượng XMLHttpRequest
• Thuộc tính onreadystatechange: Lưu giữ hàm sẽ được gọi mỗi khi thuộc tính readyState thay đổi giá trị
• Thuộc tính readyState: Lưu giữ trạng thái phản hồi của máy chủ
• Thuộc tính status: mã trạng thái của thông điệp trả lời
– 200: “OK”
– 404: Page not found
HIENLTH - FIT of HCMUP
Trang 28Nhận phản hồi từ web server và xử lý kết quả nhận được
HIENLTH - FIT of HCMUP
Trang 29VD1: Lấy giờ
HIENLTH - FIT of HCMUP
Trang 30VD1: Lấy giờ (tt)
HIENLTH - FIT of HCMUP
Trang 31Ví dụ 2 - AJAX Database
HIENLTH - FIT of HCMUP
Trang 33obj open ("GET", " LaySua.php?MaLoai= " + maloai, true);
obj.send( null );
}
HIENLTH - FIT of HCMUP
Trang 34include(" DataProvider.php ");
$ma = $_REQUEST ['MaLoai'];
$kq = DataProvider::ExecuteQuery(" SELECT * FROM sua WHERE MaLoaiSua = '{$ma}' ");
echo "<table border='1'>
Trang 36VD3 – jQuery Ajax (tt)
HIENLTH - FIT of HCMUP
Trang 37VD3 – jQuery Ajax (tt)
HIENLTH - FIT of HCMUP
Trang 38VD3 – jQuery Ajax (tt)
• Kết quả thực hiện
HIENLTH - FIT of HCMUP
Trang 39Tài liệu tham khảo
• http://www.w3schools.com/ajax
• http://api.jquery.com/jquery.ajax
• json/
http://labs.jonsuh.com/jquery-ajax-php-HIENLTH - FIT of HCMUP
Trang 40Q & A
HIENLTH - FIT of HCMUP
Trang 41THE END
HIENLTH - FIT of HCMUP