Download as pdf or txt
Download as pdf or txt
You are on page 1of 30

www.w3schools.

com Ngi dch: Hunh Dip Tn



AJAX l vit tt ca Asynchronous JavaScript And XML.
AJAX l mt kiu lp trnh tr nn ph bin vo nm 2005 (vi Google Suggest).
AJAX khng phi l mt ngn ng lp trnh mi m l mt cch thc mi s dng
nhng chun c.
Vi AJAX bn c th to ra nhng ng dng web tt, nhanh v thn thin vi
ngi dng hn.
AJAX da trn nhng yu cu JavaScript v HTML.
Bt u hc ngay AJAX!
www.w3schools.com Ngi dch: Hunh Dip Tn
Gii thiu AJAX
AJAX vit tt ca Asynchronous JavaScript And XML.
Nhng yu cu kin thc ti thiu
Trc khi tip tc, bn nn c nhng kin thc c bn v:
HTML, XHTML
JavaScript
AJAX = Asynchronous JavaScript and XML
AJAX khng l mt ngn ng lp trnh mi, nhng l mt k thut to ra nhng ng
dng web tt, nhanh v giao tip thn thin hn.
Vi AJAX, JavaScript, bn c th giao tip trc tip vi my ch bng cch s dng i
tng JavaScript l XMLHttpRequest. Vi i tng ny, JavaScript c th trao i d
liu vi my ch web m khng cn np li trang.
AJAX s dng k thut chuyn d liu bt i xng (asynchronous) gia trnh duyt v
my ch web, cho php cc trang web yu cu thng tin t my ch thay v c trang.
Cng ngh AJAX lm cho nhng ng dng Internet tr nn nh, nhanh v thn thin vi
ngi dng hn.
AJAX l mt cng ngh pha trnh duyt, c lp vi phn mm my ch web.
AJAX da trn cc chun v web
AJAX da trn cc chun v web sau y:
JavaScript
XML
HTML
CSS
Cc chun v web c s dng trong AJAX c nh ngha rt tt, v c tt c
trnh duyt ph bin h tr. Cc ng dng AJAX u c lp vi trnh duyt v nn.
www.w3schools.com Ngi dch: Hunh Dip Tn
AJAX lm cho nhng ng dng Internet tt hn
Nhng ng dng web c nhiu li ch hn nhng ng dng my bn; chng c th n
c vi mt s lng ln ngi dng. Vic ci t, h tr v pht trin chng d dng
hn.
Tuy nhin, nhng ng dng Internet khng phi lc no cng phong ph v thn thin vi
ngi dng nh nhng ng dng truyn thng chy trn my bn.
Vi AJAX, nhng ng dng web c th phong ph v thn thin vi ngi dng hn.
Ngay by gi bn c th bt u s dng AJAX
Khng c g mi hc.
AJAX da trn nhng chun c. Nhng chun ny c cc nh pht trin s dng
nhiu nm qua.
www.w3schools.com Ngi dch: Hunh Dip Tn
Nhng yu cu HTTP (HTTP Requests)
AJAX s dng nhng yu cu HTTP
Trong vit m truyn thng, nu bn mun ly bt k thng tin no t c s d liu, ly tp
tin trn my ch, hoc gi thng tin ngi dng n my ch, bn s phi to biu mu
HTML v GET hoc POST d liu n my ch. Ngi dng s phi nhp chut vo nt
"Submit" gi/nhn thng tin, ch my ch hi p, sau mt trang mi s c np
vi kt qu thu c.
V my ch tr v trang mi mi khi ngi dng ng gi d liu nhp, nhng ng dng
web truyn thng c th chy mt cch chm chp v tr nn thiu thn thin vi ngi
dng.
Vi AJAX, JavaScript ca bn giao tip trc tip vi my ch, thng qua i tng
JavaScript XMLHttpRequest.
Vi mt yu cu HTTP, trang web c th to ra mt yu cu v nhn phn hi t my ch
web m khng cn np li trang. Ngi dng vn gi nguyn trang c, v h s khng bn
tm n cc m kch bn ngm yu cu cc trang hay ngm gi d liu n my ch.
i tng XMLHttpRequest
Bng cch s dng i tng XMLHttpRequest, nh pht trin web c th cp nht trang
vi d liu t my ch sau khi trang c np.
AJAX c Google lm cho tr nn ph bin vo nm 2005 (vi Google Suggest).
Google Suggest s dng i tng XMLHttpRequest to ra mt giao din rt linh hot:
Khi bn bt u g ch trong hp tm kim ca Google, mt JavaScript gi nhng ch
n my ch v my ch tr v mt danh sch ca nhng gi .
i tng XMLHttpRequest c h tr trong Internet Explorer 5.0+, Safari 1.2, Mozilla
1.0 / Firefox, Opera 8+, v Netscape 7.
www.w3schools.com Ngi dch: Hunh Dip Tn
Mt v d AJAX
ng dng AJAX u tin ca bn
hiu AJAX lm vic th no, chng ta s to mt ng dng AJAX nh.
Trc tin, chng ta s to mt biu mu HTML chun vi hai trng vn bn: username
v time. Trng username s c in bi ngi dng v trng time s c in bng
cch s dng AJAX.
Tp tin HTML s c t tn l "testAjax.htm", v n nh th ny (ch rng biu mu
HTML bn di khng c nt gi d liu!):
<html>
<body>

<form name="myForm">
Name: <input type="text" name="username" />
Time: <input type="text" name="time" />
</form>

</body>
</html>
Nhng phn k tip s gii thch trng tm ca AJAX.
www.w3schools.com Ngi dch: Hunh Dip Tn
Vic h tr trnh duyt ca AJAX
AJAX - H tr trnh duyt
Trng tm ca AJAX l i tng XMLHttpRequest.
Nhng trnh duyt khc nhau s dng nhng cch thc khc nhau to i tng
XMLHttpRequest.
Internet Explorer s dng ActiveXObject, trong khi nhng trnh duyt khc s dng i
tng JavaScript dng sn gi l XMLHttpRequest.
to i tng ny v thch ng vi cc trnh duyt khc nhau, chng ta s s dng
lnh "try v catch". Bn c th tm hiu thm v lnh try v catch trong cc ti liu v
JavaScript.
Hy cp nht tp tin "testAjax.htm" ca bn vi JavaScript to i tng
XMLHttpRequest:
<html>
<body>

<script type="text/javascript">
function ajaxFunction()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
www.w3schools.com Ngi dch: Hunh Dip Tn
}
}
}
}
</script>

<form name="myForm">
Name: <input type="text" name="username" />
Time: <input type="text" name="time" />
</form>

</body>
</html>
Gii thch v d: Trc tin to bin xmlHttp gi i tng XMLHttpRequest.
Sau th to i tng vi XMLHttp = new XMLHttpRequest(). y l cho Firefox,
Opera, v Safari browsers.
Nu n b li, th xmlHttp = new ActiveXObject("Msxml2.XMLHTTP") dnh cho Internet
Explorer 6.0+, nu n vn b li.
Th tip xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") dnh cho Internet
Explorer 5.5+.
Nu c ba cch trn u khng lm vic, ngha ngi dng ang c mt trnh duyt qu c,
v h s nhn c mt thng bo v vic trnh duyt ca h khng h tr AJAX.
Ch : on m tng thch trnh duyt trn di v kh phc tp. Tuy nhin, y l on
m bn c th s dng mi khi cn to mt i tng XMLHttpRequest, khi y bn ch cn
chp v dn vo bt k ni no bn cn n. on m trn tng thch vi tt c trnh duyt
ph bin hin nay nh Internet Explorer, Opera, Firefox, v Safari.
Phn k tip cho bn thy cch s dng i tng the XMLHttpRequest giao tip vi
my ch.
www.w3schools.com Ngi dch: Hunh Dip Tn
AJAX - i tng XMLHttpRequest
AJAX - Tm hiu thm v i tng XMLHttpRequest
Trc khi gi d liu n my ch, chng ta phi hiu r ba thuc tnh quan trng ca i
tng XMLHttpRequest.
Thuc tnh onreadystatechange
Sau khi mt yu cu gi n my ch, chng ta cn mt hm tip nhn d liu c
my ch tr v.
Thuc tnh onreadystatechange lu gi hm ny, hm s x l d liu tr v t my ch.
on m sau y nh ngha mt hm rng v t thuc tnh onreadystatechange cng lc:
xmlHttp.onreadystatechange = function()
{
// Chng ta s vit mt vi dng m ti y
}
Thuc tnh readyState
Thuc tnh readyState lu gi trng thi phn hi ca my ch. Mi ln readyState thay
i, hm onreadystatechange s c thi hnh.
y l nhng gi tr hp l cho thuc tnh readyState:
Trng thi M t
0 Yu cu khng c khi ng
1 Yu cu c ci t
2 Yu cu c gi
3 Yu cu ang c x l
4 Yu cu hon tt
Chng ta s thm mt lnh If vo hm onreadystatechange kim tra phn hi ca chng
ta hon tt hay cha (c ngha l chng ta c th nhn d liu ca chng ta):
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
// Ly d liu t phn hi ca my ch
www.w3schools.com Ngi dch: Hunh Dip Tn
}
}
Thuc tnh responseText
D liu c gi tr v t my ch c th c tip nhn vi thuc tnh responseText.
Trong on m, chng ta s t gi tr ca trng vn bn "time" bng vi responseText:
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}

Phn k tip trnh by cch yu cu my ch mt vi d liu!
www.w3schools.com Ngi dch: Hunh Dip Tn
AJAX - Yu cu my ch
AJAX - Gi yu cu n my ch
gi ngm mt yu cu n my ch, chng ta s dng phng thc open() v send().
Phng thc open() nhn ba tham s. Tham s u tin nh ngha cch thc no c s
dng khi gi yu cu (GET hoc POST). Tham s th hai ch ra ng dn ca tp tin m
kch bn pha my ch. Tham s th ba ch ra yu cu c thc hin bt i xng hay
khng. Phng thc send() gi ngm yu cu n my ch. Nu chng ta gi s rng tp
tin HTML v ASP cng th mc, on m nh sau:
xmlHttp.open("GET","time.asp",true);
xmlHttp.send(null);
By gi chng ta phi quyt nh khi no hm AJAX c thi hnh. Chng ta s hm
ny chy "bn di mn hnh" khi ngi dng g vi ch trong trng vn bn username:
<form name="myForm">
Name: <input type="text" onkeyup="ajaxFunction();" name="username" />
Time: <input type="text" name="time" />
</form>
Gi y tp tin cp nht sn sng cho AJAX "testAjax.htm" nh sau:
<html>
<body>

<script type="text/javascript">
function ajaxFunction()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
www.w3schools.com Ngi dch: Hunh Dip Tn
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}

xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
document.myForm.time.value = xmlHttp.responseText;
}
}
xmlHttp.open("GET","time.asp",true);
xmlHttp.send(null);
}
</script>

<form name="myForm">
Name: <input type="text"
onkeyup="ajaxFunction();" name="username" />
Time: <input type="text" name="time" />
</form>

</body>
</html>
Phn k tip hon tt ng dng AJAX ca chng ta vi tp tin m kch bn "time.asp".
www.w3schools.com Ngi dch: Hunh Dip Tn
AJAX - M kch bn pha my ch
AJAX - M kch bn ASP pha my ch
Gi y chng ta s to m kch bn hin th thi gian hin hnh ca my ch.
Thuc tnh responseText ( gii thch trc y) s lu gi d liu c tr v t my
ch. y chng ta mun gi tr li thi gian hin hnh. on m trong "time.asp" nh
sau:
<%
response.expires = -1
response.write(time)
%>
Ch : Thuc tnh Expires t thi lng (theo pht) m trang s c lu vng nh tm
trn trnh duyt trc khi n qu hn. Nu ngi dng tr li cng trang trc khi n qu
hn, phin bn c lu trong vng nh tm s c hin th. Response.Expires = -1 xc
nh trang s khng bao gi c lu tm.
Chy ng dng AJAX ca bn
Th ng dng AJAX ny bng cch g vi ch vo trong hp vn bn Name bn di, sau
nhp chut vo bn trong hp vn bn Time:

Name: Time:
Hp vn bn Time nhn thi gian ca my ch t tp tin "time.asp" m khng cn np li
trang!
www.w3schools.com Ngi dch: Hunh Dip Tn
V d AJAX Suggest
Chng ta va thy AJAX c s dng to ra cc ng dng tng tc mnh hn.
V d AJAX Suggest
Trong v d AJAX di y s minh ha cch mt trang web c th giao tip vi my ch
web trc tuyn ngay ngi dng nhp d liu vo trong biu mu HTML.
G mt tn vo trong hp di y
First Name:
Suggestions:
Gii thch v d - Biu mu HTML
Biu mu trn c m HTML nh sau:
<form>
First Name: <input type="text" id="txt1" onkeyup="showHint(this.value)">
</form>

<p>Suggestions: <span id="txtHint"></span></p>
Nh bn thy n ch l mt biu mu HTML n gin vi mt trng nhp c gi l
"txt1".
Thuc tnh s kin ca trng ny nh ngha hm c by bi s kin onkeyup.
on bn di biu mu cha mt vng c gi l "txtHint". Vng ny c s dng nh
mt ni cha d liu c nhn v t my ch web.
Khi ngi dng nhp d liu, mt hm gi l "showHint()" c thi hnh. Vic thi hnh
ny c by bi s kin "onkeyup". Ni cch khc: Mi ln ngi dng di cc ngn tay
ra khi phm bn trong trng nhp, hm showHint c gi.
Gii thch v d - Hm showHint()
Hm showHint() l mt hm JavaScript rt n gin c t trong khu vc <head> ca
trang HTML.
Hm ny cha on m nh sau:
www.w3schools.com Ngi dch: Hunh Dip Tn
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url = "gethint.asp";
url = url + "?q=" + str;
url = url + "&sid=" + Math.random();
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
Hm ny thi hnh mi khi mt ch c nhp vo trng nhp.
Nu c vi ch trong trng nhp (str.length > 0) hm ny thc hin nhng vic sau:
nh ngha url (tn tp tin) gi n my ch
Thm mt tham s (q) n url vi ni dung ca trng nhp
Thm mt s ngu nhin trnh my ch s dng tp tin m
To mt i tng XMLHTTP, v bo i tng thc hin hm gi l stateChanged khi
mt thay i c by.
M i tng XMLHTTP vi url cho.
Gi mt yu cu HTTP n my ch
Nu trng nhp rng, hm n gin l xa ni dung ca ni cha txtHint.
Gii thch v d - Hm GetXmlHttpObject()
V d trn gi hm GetXmlHttpObject().
Mc ch ca hm ny gii quyt vic to cc i tng XMLHTTP khc nhau cho cc
trnh duyt khc nhau.
www.w3schools.com Ngi dch: Hunh Dip Tn
Hm ny c kit k nh sau:
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;
}

Gii thch v d - Hm stateChanged()
Hm stateChanged() cha on m sau y:
function stateChanged()
{
if (xmlHttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
}
}
Hm stateChanged() thc hin mi khi trng thi ca i tng XMLHTTP thay i.
Khi trng thi i thnh 4 ("hon tt"), ni dung ca ni cha txtHint c in vi vn
bn phn hi.
www.w3schools.com Ngi dch: Hunh Dip Tn
M ngun ca AJAX Suggest
M ngun ca v d AJAX Suggest
M ngun di y i theo v d AJAX trong trang trc.
Bn c th chp v dn n, v t th n.
Trang HTML AJAX
y l trang HTML. N cha mt biu mu HTML n gin v mt lin kt n mt
JavaScript.
<html>
<head>
<script src="/clienthint.js"></script>
</head>
<body>
<form>
First Name: <input type="text" id="txt1"
onkeyup="showHint(this.value)">
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>
M JavaScript c lit k bn di.
M AJAX JavaScript
y l m JavaScript, lu tr trong tp tin "clienthint.js":
var xmlHttp

function showHint(str)
{
if (str.length == 0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
xmlHttp = GetXmlHttpObject();
if (xmlHttp == null)
{
alert("Your browser does not support AJAX!");
return;
}
www.w3schools.com Ngi dch: Hunh Dip Tn
var url = "gethint.asp";
url = url + "?q=" + str;
url = url + "&sid=" + Math.random();
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function stateChanged()
{
if (xmlHttp.readyState == 4)
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
}
}

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;
}
Trang my ch AJAX - ASP v PHP
Khng c g nhiu v mt my ch AJAX. Nhng trang AJAX c th c lu tr bi bt
k my ch Internet no.
Trang my ch c gi bi JavaScript trong v d t chng trc l mt tp tin ASP n
gin gi l "gethint.asp".
Di y chng ta lit k hai v d ca m trang pha my ch, mt c vit trong ASP v
mt c vit trong PHP.
www.w3schools.com Ngi dch: Hunh Dip Tn
V d ASP v AJAX
on m trong trang "gethint.asp" c vit trong VBScript cho Internet Information
Server (IIS). N ch kim tra mt mng ca cc tn v tr v nhng tn tng ng n my
khch:
<%
response.expires = -1
dim a(30)
'in d liu cho mng vi nhng ci tn
a(1) = "Anna"
a(2) = "Brittany"
a(3) = "Cinderella"
a(4) = "Diana"
a(5) = "Eva"
a(6) = "Fiona"
a(7) = "Gunda"
a(8) = "Hege"
a(9) = "Inga"
a(10) = "Johanna"
a(11) = "Kitty"
a(12) = "Linda"
a(13) = "Nina"
a(14) = "Ophelia"
a(15) = "Petunia"
a(16) = "Amanda"
a(17) = "Raquel"
a(18) = "Cindy"
a(19) = "Doris"
a(20) = "Eve"
a(21) = "Evita"
a(22) = "Sunniva"
a(23) = "Tove"
a(24) = "Unni"
a(25) = "Violet"
a(26) = "Liza"
a(27) = "Elizabeth"
a(28) = "Ellen"
a(29) = "Wenche"
a(30) = "Vicky"

'ly tham s q t URL
q = ucase(request.querystring("q"))

'tra tt c gi t mng nu di ca q > 0
if len(q) > 0 then
hint = ""
for i=1 to 30
if q = ucase(mid(a(i),1,len(q))) then
if hint = "" then
www.w3schools.com Ngi dch: Hunh Dip Tn
hint = a(i)
else
hint = hint & " , " & a(i)
end if
end if
next
end if

'xut "no suggestion" nu khng tm thy gi no hoc xut nhng gi
tr ng
if hint = "" then
response.write("no suggestion")
else
response.write(hint)
end if
%>
V d PHP v AJAX
on m sau y c vit trong PHP.
Ch : chy ton b v d trong PHP, nh i gi tr ca bin ng dn trong
"clienthint.js" t "gethint.asp" thnh "gethint.php".
V d PHP
<?php
header("Cache-Control: no-cache, must-revalidate");

// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// 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[] = "Kitty";
$a[] = "Linda";
$a[] = "Nina";
$a[] = "Ophelia";
$a[] = "Petunia";
$a[] = "Amanda";
$a[] = "Raquel";
www.w3schools.com Ngi dch: Hunh Dip Tn
$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";

//ly tham s q t URL
$q = $_GET["q"];

//tra tt c gi t mng nu di ca q > 0
if (strlen($q) > 0)
{
$hint = "";
for($i=0; $i<count($a); $i++)
{
if (strtolower($q) == strtolower(substr($a[$i],0,strlen($q))))
{
if ($hint == "")
{
$hint = $a[$i];
}
else
{
$hint = $hint . " , " . $a[$i];
}
}
}
}

// xut ra "no suggestion" nu khng tm thy gi hoc gi tr ng
if ($hint == "")
{
$response = "no suggestion";
}
else
{
$response = $hint;
}

//xut phn hi
echo $response;
?>
www.w3schools.com Ngi dch: Hunh Dip Tn
AJAX Database Example
AJAX c th c s dng cho giao tip vi c s d liu.
V d C s d liu AJAX Database
Trong v d AJAX bn di chng ta s minh ha cch mt trang web c th ly thng tin
t mt c s d liu bng cng ngh AJAX.
Chn mt tn trong hp bn di
Select a Customer:
Alfreds Futterkiste

Customer info will be listed here.
Gii thch v d AJAX
V d trn cha mt biu mu HTML n gin v mt lin kt n JavaScript:
<html>
<head>
<script src="selectcustomer.js"></script>
</head>
<body>
<form>
Select a Customer:
<select name="customers" onchange="showCustomer(this.value)">
<option value="ALFKI">Alfreds Futterkiste
<option value="NORTS ">North/South
<option value="WOLZA">Wolski Zajazd
</select>
</form>
<p>
<div id="txtHint"><b>Customer info will be listed here.</b></div>
</p>
</body>
</html>
Nh bn thy n ch l mt biu mu HTML n gin vi mt hp danh sch x xung gi
l "customers".
on bn di biu mu cha mt vng gi l "txtHint". Vng ny c dng lm ni
cha thng tin nhn v t my ch web.
www.w3schools.com Ngi dch: Hunh Dip Tn
Khi ngi dng chn d liu, hm "showCustomer()" c thi hnh. Vic thi hnh ca
hm ny c by bi s kin "onchange". Ni cch khc: Mi khi ngi dng thay i gi
tr trong hp x xung, hm showCustomer c gi.
M JavaScript c lit k bn di.
M JavaScript AJAX
y l m JavaScript cha trong tp tin "selectcustomer.js":
var xmlHttp

function showCustomer(str)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url = "getcustomer.asp";
url = url+ "?q=" + str;
url = url + "&sid=" + Math.random();
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function stateChanged()
{
if (xmlHttp.readyState == 4)
{
document.getElementById("txtHint").innerHTML = xmlHttp.responseText;
}
}

function GetXmlHttpObject()
{
var xmlHttp = null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
www.w3schools.com Ngi dch: Hunh Dip Tn
}
catch (e)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
Trang my ch AJAX
Trang my ch c gi bi JavaScript, l mt tp tin ASP n gin gi l
"getcustomer.asp".
Trang ny c vit trong VBScript cho Internet Information Server (IIS). N cng c
vit d dng trong PHP, hoc mt vi ngn ng khc.
M ny chy mt SQL n c s d liu v tr v kt qu nh mt bng biu HTML:
<%
response.expires = -1
sql = "SELECT * FROM CUSTOMERS WHERE CUSTOMERID="
sql = sql & "'" & request.querystring("q") & "'"

set conn = Server.CreateObject("ADODB.Connection")
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("/db/northwind.mdb"))
set rs = Server.CreateObject("ADODB.recordset")
rs.Open sql, conn

response.write("<table>")
do until rs.EOF
for each x in rs.Fields
response.write("<tr><td><b>" & x.name & "</b></td>")
response.write("<td>" & x.value & "</td></tr>")
next
rs.MoveNext
loop

response.write("</table>")
%>
www.w3schools.com Ngi dch: Hunh Dip Tn
V d AJAX XML
AJAX c th c dng giao tip vi tp tin XML.
V d AJAX XML
Trong v d AJAX bn di chng ta s minh ha cch mt trang web c th ly thng tin
t mt tp tin XML bng cng ngh AJAX.
Chn mt CD trong hp bn di
Select a CD:
Dolly Parton

CD info will be listed here.
Gii thch v d
V d trn cha mt biu mu HTML n gin v mt lin kt n JavaScript:
<html>
<head>
<script src="selectcd.js"></script>
</head>
<body>
<form>
Select a CD:
<select name="cds" onchange="showCD(this.value)">
<option value="Bob Dylan">Bob Dylan</option>
<option value="Bonnie Tyler">Bonnie Tyler</option>
<option value="Dolly Parton">Dolly Parton</option>
</select>
</form>
<p>
<div id="txtHint"><b>CD info will be listed here.</b></div>
</p>
</body>
</html>
Bn thy n ch l mt biu mu HTML n gin v mt hp x xung gi l "cds".
on vn bn bn di biu mu cha mt vng gi l "txtHint". Vng ny c dng lu
tr thng tin tip nhn t my ch..
Khi ngi dng chn d liu, hm "showCD" c thi hnh. Vic thi hnh ca hm ny
c by bi s kin "onchange". Ni cch khc: Mi khi ngi dng thay i gi tr trong
hp x xung, hm showCD c gi.
www.w3schools.com Ngi dch: Hunh Dip Tn
M JavaScript c lit k bn di.
M JavaScript AJAX
y l m JavaScript cha trong tp tin "selectcd.js":
var xmlHttp
function showCD(str)
{
xmlHttp = GetXmlHttpObject();
if (xmlHttp == null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url = "getcd.asp";
url = url + "?q=" + str;
url = url + "&sid=" + Math.random();
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function stateChanged()
{
if (xmlHttp.readyState == 4)
{
document.getElementById("txtHint").innerHTML = xmlHttp.responseText;
}
}

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");
}
www.w3schools.com Ngi dch: Hunh Dip Tn
}
return xmlHttp;
}
Trang my ch AJAX
Trang my ch c gi bi JavaScript, l mt tp tin ASP n gin gi l "getcd.asp".
Trang ny c vit trong VBScript cho Internet Information Server (IIS). N cng c
vit d dng trong PHP, hoc mt vi ngn ng khc.
M ny chy mt truy vn n tp XML v tr v kt qu dng HTML:
<%
response.expires = -1
q=request.querystring("q")

set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = "false"
xmlDoc.load(Server.MapPath("cd_catalog.xml"))

set nodes = xmlDoc.selectNodes("CATALOG/CD[ARTIST='" & q & "']")

for each x in nodes
for each y in x.childnodes
response.write("<b>" & y.nodename & ":</b> ")
response.write(y.text)
response.write("<br />")
next
next
%>
www.w3schools.com Ngi dch: Hunh Dip Tn
V d v hi p XML AJAX
Trong khi responseText tr v phn hi HTTP nh mt chui, responseXML tr v phn
hi nh mt XML.
Thuc tnh ResponseXML tr v mt i tng ti liu XML, n c th c nhn din v
tch bng cch dng cc phng thc v thuc tnh ca cu trc cy W3C DOM.
V d hi p AJAX ResponseXML
Trong v d AJAX sau y chng ta s minh ha cch mt trang c th ly thng tin t mt
c s d liu bng cng ngh AJAX. Nhng d liu c chn t c s d liu ln ny s
c chuyn i thnh mt ti liu XML, v sau chng ta s s dng DOM kt xut
nhng gi tr hin th.
Chn tn trong hp di y
Select a Customer:

Gii thch v d AJAX
V d trn cha mt biu mu HTML, cc phn t <span> lu gi cc d liu tr v, v
mt lin kt n JavaScript:
<html>
<head>
<script src="selectcustomer_xml.js"></script>
</head>
<body>
<form action="">
Select a Customer:
<select name="customers" onchange="showCustomer(this.value)">
<option value="ALFKI">Alfreds Futterkiste</option>
<option value="NORTS ">North/South</option>
<option value="WOLZA">Wolski Zajazd</option>
</select>
</form>
<b><span id="companyname"></span></b><br />
<span id="contactname"></span><br />
<span id="address"></span>
<span id="city"></span><br/>
<span id="country"></span>
</body>
</html>
www.w3schools.com Ngi dch: Hunh Dip Tn
V d trn cha mt biu mu HTML v mt hp x xung gi l "customers".
Khi ngi dng chn mt khch hnh trong hp x xung, hm "showCustomer()" c
thi hnh. Vic thi hnh ca hm ny c by bi s kin "onchange". Ni cch khc: Mi
khi ngi dng thay i gi tr trong hp x xung, hm showCustomer() c gi.
M JavaScript c lit k bn di.
M AJAX JavaScript
y l m JavaScript lu tr trong tp tin "selectcustomer_xml.js":
var xmlHttp
function showCustomer(str)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url = "getcustomer_xml.asp";
url = url + "?q=" + str;
url = url + "&sid=" + Math.random();
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function stateChanged()
{
if (xmlHttp.readyState==4)
{
var xmlDoc = xmlHttp.responseXML.documentElement;
document.getElementById("companyname").innerHTML=
xmlDoc.getElementsByTagName("compname")[0].childNodes[0].nodeValue;
document.getElementById("contactname").innerHTML=
xmlDoc.getElementsByTagName("contname")[0].childNodes[0].nodeValue;
document.getElementById("address").innerHTML=
xmlDoc.getElementsByTagName("address")[0].childNodes[0].nodeValue;
document.getElementById("city").innerHTML=
xmlDoc.getElementsByTagName("city")[0].childNodes[0].nodeValue;
document.getElementById("country").innerHTML=
xmlDoc.getElementsByTagName("country")[0].childNodes[0].nodeValue;
}
}

function GetXmlHttpObject()
{
www.w3schools.com Ngi dch: Hunh Dip Tn
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;
}
Cc hm showCustomer() v GetXmlHttpObject() trn ging nh cc phn trc. Hm
stateChanged() cng c cp trc y, tuy nhin; ln ny chng ta tr v kt qu l
ti liu XML (vi responseXML) v s dng DOM kt xut cc gi tr hin th.
Trang my ch AJAX
Trang my ch c gi bi JavaScript, l mt tp tin ASP n gin gi l
"getcustomer_xml.asp".
Trang ny c vit trong VBScript cho Internet Information Server (IIS). N cng c
vit d dng trong PHP, hoc mt vi ngn ng khc.
M ny chy mt truy vn SQL n c s d liu v tr v kt qu l mt ti liu XML:
<%
response.expires = -1
response.contenttype = "text/xml"
sql = "SELECT * FROM CUSTOMERS "
sql = sql & " WHERE CUSTOMERID='" & request.querystring("q") & "'"

on error resume next
set conn = Server.CreateObject("ADODB.Connection")
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("/db/northwind.mdb"))
set rs = Server.CreateObject("ADODB.recordset")
rs.Open sql, conn
if err <> 0 then
www.w3schools.com Ngi dch: Hunh Dip Tn
response.write(err.description)
set rs = nothing
set conn = nothing
else
response.write("<?xml version='1.0' encoding='ISO-8859-1'?>")
response.write("<company>")
response.write("<compname>" &rs.fields("companyname")& "</compname>")
response.write("<contname>" &rs.fields("contactname")& "</contname>")
response.write("<address>" &rs.fields("address")& "</address>")
response.write("<city>" &rs.fields("city")& "</city>")
response.write("<country>" &rs.fields("country")& "</country>")
response.write("</company>")
end if
on error goto 0
%>
dng th hai trong m ASP trn: response.contenttype="text/xml". Thuc tnh
ContentType t kiu ni dung HTTP cho i tng hi p. Gi tr mc nh cho thuc
tnh ny l "text/html". Ln ny chng ta mun kiu ni dung l XML.
Sau khi chn d liu t c s d liu, chng ta xy dng mt ti liu XML vi d liu nhn
c.

You might also like