Bài viết được sự cho phép của tác giả Thầy Long Web
Giới thiệu ajax
- AJAX là từ viết tắt của Asynchronous JavaScript and XML
- Ajax là kỹ thuật giúp bạn tải dữ liệu từ server mà không cần refresh trình duyệt.
- Gmail, google map là các website điển hình sử dụng kỹ thuật ajax.
Ajax trong jquery
jQuery có nhiều hàm giúp bạn tạo các request AJAX đến server. Mục đích để thực hiện tương tác ngầm với server và lấy dữ liệu về hiện trong trang web. Bạn có thể request text, html, xml, json từ server thông qua cá phương thức get và post.
Các hàm trong jquery tạo request ajax
Method | Description |
$.ajax() | Performs an async AJAX request |
$.get() | Loads data from a server using an AJAX HTTP GET request |
$.getJSON() | Loads JSON-encoded data from a server using a HTTP GET request |
$.getScript() | Loads (and executes) a JavaScript from a server using an AJAX HTTP GET request |
$.post() | Loads data from a server using an AJAX HTTP POST request |
load() | Loads data from a server and puts the returned data into the selected element |
serialize() | Encodes a set of form elements as a string for submission |
Sử dụng hàm load trong jquery
Hàm load của jquery giúp bạn tạo một request ajax tới 1 trang web trên server. Khi nội dung từ server đổ về, dữ liệu sẽ nạp vào selector đã chọn. Đây là request dạng get
Cú pháp hàm load trong jquery
$(selector).load( url, data , [callback] ); $(selector).load(url, data , function(response,status,xhr) )
- url – Là địa chỉ của trang web trên server cần request . Các trang này có thể là ASP, JSP, PHP…
- data – tham số dành cho trang web trong url, theo cấu trúc key=value&key=value. Ví dụ lang=vi&idSP=5. Nếu trang url không cần tham số thì bạn bỏ qua tham số data
- callback – là hàm được gọi sau khi dữ liệu từ url đã trả về
- response: là data đổ về từ server
- status: trạng thái tử server đổ về cho biết kết quả thực thi trang web url (success, notmodified, error, timeout, parsererror )
- xhr: chính là đối tượng xmlhttprequest
Thực tập sử dụng hàm load trong jquery
a. Có trang hamload.html như sau:
<meta charset="utf-8">
<style>#data {min-height:200px;width:400px;background:#9CC;border:double 2px #033;padding:10px}</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<p>
<input type="button" name="txn" id="txn" value="Tin xem nhiều" />
<input type="button" name="tnb" id="tnb" value="Tin nổi bật" />
</p>
<div id="data"></div><input id="tt">
b. Gọi ajax với hàm load, không dùng callback
c. Gọi ajax với hàm load, có dùng hàm callback
Trang txn.html
Trang tnb.html
Hàm $.get
Hàm $.get của jquery giúp bạn tạo một request ajax tới 1 trang web trên server. Khi nội dung từ server đổ về, bạn sử dụng hàm callback để đón và xử lý. Request do $.get tạo ra là request dạng get
Cú pháp hàm $.get trong jquery
$.get(url); $.get(url,function(response,status,xhr)); $.get(url, data,function(response,status,xhr)) $.get(url, data, function(response,status,xhr),dataType)
- url – Là địa chỉ của trang web trên server cần request . Các trang này có thể là ASP, JSP, PHP…
- data – tham số dành cho trang web trong url, theo cấu trúc key=value&key=value. Ví dụ lang=vi&idSP=5. Nếu trang url không cần tham số thì bạn bỏ qua tham số data
- function(data,status,xhr) – là hàm callback được gọi sau khi dữ liệu từ url đã trả về
- response: là data đổ về từ server
- status: trạng thái tử server đổ về cho biết kết quả thực thi trang web url
- xhr: chính là đối tượng xmlhttprequest
- dataType: là kiểu dữ liệu dự kiến sẽ nhận tử server, có thể là html, xml, json, text, script
Thực tập sử dụng hàm $.get trong jquery
Xem thêm nhiều việc làm JavaScript hấp dẫn trên TopDev
Hàm $.post
Hàm $.post của jquery giúp bạn tạo một request ajax tới 1 trang web trên server. Request này dạng post.
Cú pháp hàm $post trong jquery
$.post(url); $.post(url,function(response,status,xhr)); $.post(url, data,function(response,status,xhr)) $.post(url, data, function(response,status,xhr),dataType)
- url – Là địa chỉ của trang web trên server cần request . Các trang này có thể là ASP, JSP, PHP…
- data – tham số dành cho trang web trong url, theo cấu trúc key=value&key=value. Ví dụ lang=vi&idSP=5. Nếu trang url không cần tham số thì bạn bỏ qua tham số data
- function(data,status,xhr) – là hàm callback được gọi sau khi dữ liệu từ url đã trả về
- response: là data đổ về từ server
- status: trạng thái tử server đổ về cho biết kết quả thực thi trang web url
- xhr: chính là đối tượng xmlhttprequest
- dataType: là kiểu dữ liệu dự kiến sẽ nhận tử server, có thể là html, xml, json, text, script
Thực tập sử dụng hàm $.post trong jquery
a. Có trang post.html như sau:
b. Dùng hàm serialize gom dữ liệu trong form
<script>
$(document).ready(function(){
$("#btn1").click(function(){
var d = $("[name='frm1']").serialize();
alert(d);
});
});
</script>
c. Dùng hàm $.post gửi dữ liệu trong form lên server
d. File xuly.php trên server, code đơn giản như sau:
<?php
$u=$_POST['u'];
$p=$_POST['p'];
$arr=array("teo","ti");
if (in_array($u,$arr)==false) echo "Username không tồn tại";
else if ($p!="1") echo "Password không đúng";
else echo "Đăng nhập thành công";
?>
Hàm $.getJSON
Hàm $.getJSON của jquery giúp bạn tạo một request ajax tới 1 trang web trên server để nhận về dữ liệu dạng Json – Dữ liệu dạng text có cấu trúc
Cú pháp hàm $.getJSON trong jquery
$.getJSON(url, data, function(response,status,xhr))
- url – Là địa chỉ của trang web trên server cần request . Các trang này có thể là ASP, JSP, PHP…
- data – tham số dành cho trang web trong url, theo cấu trúc key=value&key=value. Ví dụ lang=vi&idSP=5. Nếu trang url không cần tham số thì bạn bỏ qua tham số data
- function(data,status,xhr) – là hàm callback được gọi sau khi dữ liệu từ url đã trả về
- response: là data đổ về từ server
- status: trạng thái tử server đổ về cho biết kết quả thực thi trang web url
- xhr: chính là đối tượng xmlhttprequest
- dataType: là kiểu dữ liệu dự kiến sẽ nhận tử server, có thể là html, xml, json, text, script
Thực tập sử dụng hàm $.getJSON trong Jquery
a. Có file Student.php thông tin sinh viên như sau:
b. Trang html code như sau:
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<div class="col-8 mx-auto border border-danger p-3 mt-4">
<p>
<input type="button" id="xemds" value="Danh sách sinh viên" /> <input id="tt">
</p>
<div id="kq" class="alert alert-info"></div>
</div>
c. Dùng hàm $.getJSON request dữ liệu json về hiện trong console
d. Dùng hàm $.getJSON request dữ liệu json về và hiện trong trang web
e. Dùng hàm $.getJSON để request dữ liệu json dạng mảng về hiện trong trang web
Sử dụng hàm $.ajax trong jquery
Hàm $.ajax của jquery giúp bạn tạo một request ajax tới 1 trang web trên server với nhiều tham số uyển chuyển. Với hàm này, bạn có thể chỉ định kiểu request là post hay get, có thể điều khiển cache của trình duyệt …
Cú pháp hàm $.ajax trong jquery
$.ajax({name:value, name:value, ... })
Các name/value có thể dùng trong liệt kê dưới đây:
Name | Value/Description |
---|---|
cache | A Boolean value indicating whether the browser should cache the requested pages. Default is true |
data | Tham số dành cho trang web trong url, theo cấu trúc key=value&key=value. Ví dụ lang=vi&idSP=5. Nếu trang url không cần tham số thì bạn bỏ qua tham số data |
dataType | Kiểu dữ liệu mong chờ server đáp ứng |
success (result, status, xhr) | Là hàm được gọi sau khi dữ liệu từ url đã trả về thành công |
timeout | Thời gian timeout (milliseconds) cho request |
type | Kiểu của (GET / POST) |
url | Là địa chỉ của trang web trên server cần request . Các trang này có thể là ASP, JSP, PHP… |
xhr | chính là đối tượng xmlhttprequest |
Thực tập sử dụng hàm $.ajax trong jquery
Ví dụ 1: request với type là get
Ví dụ 2: request với type là post
Bài viết gốc được đăng tải tại longnv.name.vn
Xem thêm:
Xem thêm Việc làm IT hấp dẫn trên TopDev