Professional Documents
Culture Documents
3
1.1. Kin trc logic mng my tnh.........................................................................................3 1.1.1. Khi nim c bn v kin trc my tnh...................................................................3 1.1.2. Kin trc Peer-to-Peer v cc h thng tnh ton.....................................................4 1.1.3 Kin trc khch/ch c in.......................................................................................5 1.1.4. Kin trc khch ch da Web.................................................................................10 1.2. Nn tng ca cc Cng ngh mng................................................................................12 1.2.1. S tng tc vi Webserver....................................................................................12 1.2.2. X l thng tin phn tn trn nn tng c cc chng trnh d bin i................15 1.2.3. Truy xut ti c s d liu qun h........................................................................23
5.3. Cc cu lnh...................................................................................................................92 5.3.1. Lnh r nhnh..........................................................................................................92 5.3.2. Lnh lp xc nh....................................................................................................93 5.3.3. Vng lp khng xc nh........................................................................................94 5.4 Hm v th tc................................................................................................................96 5.4.1. Hm.........................................................................................................................96 5.4.2. Th tc....................................................................................................................96 5.4.3. V d s dng hm v th tc (Gia phng trnh bc 2 mt n s).......................96 5.4.2. MT S HM THNG DNG TRONG VBSCRIPT......................................97 5.4.3. ON M DNG CHUNG..................................................................................99 5.5. Tp cu hnh GLOBAL.ASA.......................................................................................100 5.5.1. Cc s kin............................................................................................................100 5.5.2. Khai bo i tng................................................................................................100 5.5.3. Mt file cu hnh Global.asa n gin..................................................................101 5.5.2. TP HP (COLLECTION) TRONG ASP..........................................................101 5.5.2.1. Khi nim...........................................................................................................101 5.5.2.2. Cch truy cp cc phn t trong tp hp............................................................102 5.6. X l cc FORM d liu............................................................................................103 5.6.1. M u..................................................................................................................103 5.6.2. S dng phng thc GET...................................................................................103 5.6.3. S dng phng thc POST.................................................................................104 5.7. Cc i tng ci sn trong ASP.................................................................................106 5.7.1. Cc i tng ASP................................................................................................106 5.7.2. i tng REQUEST...........................................................................................106 5.7.3. i tng RESPONSE.........................................................................................109 5.7.4. i tng APPLICATION...................................................................................110 5.7.5. I TNG SESSION.......................................................................................112 5.7.6. I TNG SERVER........................................................................................114 5.8. COOKIES....................................................................................................................117 5.8.1. Khi nim COOKIES............................................................................................117 5.8.2. Thit lp COOKIES..............................................................................................117 5.8.3. Ly gi tr ca COOKIES.....................................................................................117 5.8.4. Th mc COOKIES..............................................................................................117 5.8.5. Kim tra xem COOKIES c dng kha khng.....................................................118 5.9 Gii thiu ADO v cc kt ni c s d liu................................................................118 5.9.1 Gii thiu...............................................................................................................118 5.9.2 K ni vi c s d liu.........................................................................................118 5.9.3 Cc i tng ca ADO.........................................................................................119
Kin truc logic miu ta cu truc, nhim vu va mi quan h ca phn mm thc thi cac giao thc tng trn, c bit cac giao thc tng trinh din va tng ng dung. Kin trc ny mang li cng ngh tch hp v hp nht ca mng my tnh v c th xy dng cc mc tru tng khc nhau ca kin trc vt l. Hin nay, c mt vi loi kin trc mng logic nh sau:
Kin truc ngang hang Kin truc khach/chu c in Kin truc khach chu da vao Web
S xut hin cua cc m hinh u lin quan n cac giai oan khac nhau cua s phat trin h thng mang may tinh. S la chon chinh xac m hinh cho kin truc logic cua mang may tinh cho phep nha thit k mang ap ng nhng yu cu v tinh hiu qua, tin cy bao v nhng ngun tai nguyn mang, s uyn chuyn thit lp mang va hn na o la chi phi nho nht cho vic xy dng va quan tri.
Hnh. 1.2: Kin trc u tin ca h thng tnh ton Tuy nhin, nu cc my tnh c kt ni bi cc lin kt truyn thng to thnh mt mng, mng nh vy c mt kin trc ngang hng, trong khng c cc my tnh tn hin cung cp ton b ngun ti nguyn ca chng cho cc my tnh khc trong mng s dng chung. V vy, kin trc tp trung thuc v danh mc ca mt h thng tnh ton t tr da trn vic s dng chia s mt my tnh ngi dng, trong khi kin trc ngang hng thuc v danh mc mng my tnh bao gm cc my tnh c vai tr nh nhau, khng tn ti my tnh tn hin cp ngun ti nguyn ca chng cho vic s dng chung. 4
Trong kin trc tp trung, tt c cc ngun ti nguyn ca h thng tnh ton, bao gm thng tin, c tp trung trong my tnh trung tm, c bit nh l my tnh ln (my tnh ln l mt thnh phn tp trung ca h thng my tnh). Cc thit b u cui c kt ni n my tnh tp trung bng cp c s dng nh phng tin chnh truy cp n nhng ngun ti nguyn thng tin. V mt thit b u cui l mt thit b tng i n gin, n khng i hi bt k thao tc c bit no thit lp hay yu cu cu hnh phn mm c thc hin bi ngi dng cui, khi m khng c phn mm c lu tr trong thit b u cui. Vic iu khin cc thit b u cui c thit lp ch yu (cetrally) t my tnh ln, v tt c thit b u cui u c cng kiu. V vy, m bo c chng trnh chy trn mt thit b u cui bt k c th chy trn tt c cc thit b u cui trong cng mt cch. V mt lu tr d liu va bao mt x ly d liu, s thun li chinh cua kin truc tp trung o la mi quan h n gian cua vic xy dng va quan tri h thng bao mt thng tin. iu nay dn ti s tp trung ngun tai nguyn, vi iu o mang lai s d dang bao v rt nhiu i tng nu nhng i tng nay c xac inh mt ni hn la chung c phn b nhng vi tri khac nhau Mc du co nhiu thun li, nhng h thng tinh toan u tin co s iu han ch nh thiu s uyn chuyn h thng, khng thun li s dung i vi ngi s dung cui va chi phi cao. Khi s dung nhng h thng tinh toan vi kin truc tp trung bt u mt dn i tm quan trng, mng ngang hng tr nn ph bin hn, bi v chi ph ca cc mng ny kh thp. Tuy nhin, cc mng ngang hng hin nay kt ni cc PC hn nhng my tnh a ngi dng. V vy, mt thuc tnh chnh ca mng ngang hng l thiu vng cc my tnh tp trung cung cp ngun ti nguyn ca chnh n cho vic s dng chung. Nhng nhc im quan trng ca nhng mng ngang hng l s thc th, bo mt v s an ton mc thc ca chng, cng nh s phc tp trong qun tr. Thm vo , nhng nhc im ny tng ln khi s lng cc my tnh trong mng tng. V vy, kin trc mng ngang hng thch hp cho vic kt ni s lng my tnh t vi yu cu v s an ton v kh nng x l d liu thp.
Hnh. 1.3: Kin trc khnh ch Mt my ch c trng c miu t bi loi ti nguyn m n qun l. V d, nu ngun ti nguyn l c s d liu th my ch c coi nh l my ch c s d liu, mc ch chnh ca n l phc v cc truy vn ca my trm cho vic x l d liu. Nu ngun ti nguyn l mt h thng tp, my ch c bit n nh l my ch tp. v mc ch ca n l chuyn cc tp ti cc my trm. Ni chung, cc my ch c kh nng cung cp cc ngun ti nguyn s dng chung, bao gm c s d liu, cc h thng tp v mt s dch v khc c thc hin bi s cc chng trnh my ch. Thm vo , cc my ch c th cung cp truy cp ti cc thit b ngoi vi (v d, my ch in n c th cung cp vic chia s truy cp n mt my in). Chng ta phn bit gia cc m hnh kin trc khch, mi m hnh ny tng ng s phn loi thch hp ca cc thnh phn ca kin trc phn mm bn trong cc my tnh mng. Cc thnh phn phn mm phn phi c phn bit bi chc nng m chng c kh nng cung cp. Cc chc nng ca bt k mt ng dng phn mm no c th c chia thnh 3 nhm sau y:
Cc chc nng lin quan ti u vo (input) v u ra (output) Cc chc nng ng dng, c th ti tng vng kin thc (mt vng chuyn gii quyt mt vn no ) ca ng dng Cc chc nng qun l d liu Data mining
Bt k mt ng dng phn mm hin nay c th c biu din bi mt cu trc bao gm 3 thnh phn sau:
Cc thnh phn trnh din, m n thc thi giao din ngi dng Cc thnh phn ng dng, thc thi cc chc nng ng dng Cc thnh phn cung cp truy cp ti cc ngi ti nguyn thng tin, thng tin
Cc m hnh ca kin trc khch ch di y c xc nh, tng ng vi cc phng thc phn phi ca 3 thnh phn phn mm chnh gia cc trm lm vic v my ch mng:
B sung d liu, nh qun l ti nguyn c xc nh trn my ch, v d mt h qun l c s d liu (Hnh. 1.5).
D liu, qun l ti nguyn, v cc thnh phn ng dng c tp trung trn my ch (Hnh. 1.6).
Cc thnh phn ng dng c lu trn my ch, trong khi d liu v qun l ta nguyn c lu trong my ch khc (Hnh. 1.7).
Hnh. 1.7: M hnh khch/ch ba lp M hnh ca kin trc khch ch u tin lu tr d liu trn my ch, khng cung cp tnh nng hiu qu cao, v thng tin c x l trn cc my trm v cc tp cha thng tin ny phi c truyn cho vic x l t my ch trn ton b mng. Vic truyn khi lng ln d liu trn ton mng dn ti s trao i thng tin vi tc thp. Tip theo, iu ny c th 7
dn ti qu ti trn mng. Chnh v l do ny, m hnh truy xut d liu t xa ch c th c s dng cho cc mng kh nh, vi vic x l s lng d liu t. Hnh 1.5 ch ra m hnh th 2 ca kin trc khch ch, trong thng tin c lu tr trn my ch, l h thng qun l ti nguyn (v d DBMS). y l m hnh my ch iu khin d liu. Cc thnh phn trnh din v ng dng c kt hp v thc thi trn my trm, h tr cc chc nng hin th v d liu u vo cng nh cc chc nng ng dng. Theo quy c, vic truy cp n cc ngun ti nguyn thng tin c cung cp vi cc thao tc ca ngn ng c bit (v d, SQL trong trng hp ca cc c s d liu) hoc gi cc chc nng cha trong cc th vin chng trnh chuyn dng. Cc cu truy vn to ra cc ngun ti nguyn thng tin c gi ti cc trnh qun l ti nguyn. Trnh qun l ti nguyn x l cc truy vn v tr v cc khi d liu cho my trm. u im ca m hnh my ch iu khin d liu so vi m hnh truy cp d liu t xa l thng tin t c truyn trn mng hn. l nh c vic la chn cc n v thng tin c yu cu t cc tp khng c thc hin trn my trm m c thc hin trn my ch. Ni chung, ti thi im hin ti, c rt nhiu cng c pht trin, cung cp pht trin ng dng nhanh, s dng mt giao din chun, thao tc vi DBMS hng SQL. iu ny cung cp s thng nht, s thao tc gia cc thnh phn, v rt nhiu s la chn cc cng c pht trin phn mm. Nhc im chnh ca m hnh iu khin d liu l khng c danh gii r rng gia thnh phn trnh din v thnh phn ng dng. iu ny dn n cn tr s pht trin tip theo ca h thng tnh ton c kin trc xy dng da vo m hnh ny. Hn th na, s thay i mt thnh phn yu cu s thay i ca ton b h thng Ton b nhng thun li v bt li ca m hnh my ch iu khin d liu c lit k trn, c th kt lun rng da vo m hnh ny l ph hp nht xy dng nhng h thng tnh ton hng x l ni dung thng tin va phi, m ni dung thng tin ny khng tng theo thi gian. V vy, phc tp ca cc thnh phn p dng ng dng s khng cao. So vi m hnh my ch iu khin d liu, m hnh khch ch hai lp thun tin hn iu hnh. M hnh ny c pht trin vi gi thuyt rng, vic thc hin x l trn my trm c gii hn i vi cc chc nng trnh din, trong khi cc chc nng ng dng v truy cp d liu c thc hin pha my ch. Nhng chc nng ng dng c th c thc hin trong cc chng trnh ring r hoc trong cc th tc lu tr, c bit n nh l cc th tc c s d liu. Nhng th tc ny c lu tr trong c s d liu v c thc hin trn my ch, ni thnh phn iu khin truy xut d liu, tng ng nhn ca DBMS cng hot ng. Ngc li vi m hnh my ch iu khin d liu, li ch ca my ch tch hp rt r rng: n gin, hiu qu cao, qun tr tp trung, v v vy gim bt vic s dng cc ngun ti nguyn mng. T nhng li ch ny, c th i n mt kt lun l m hnh my ch tch hp l ti u cho cc mng ln hng v x l s lng ln thng tin, hoc s l m hnh mong i trong thi gian ti. Khi cc thnh phn ng dng ngy cng phc tp v s dng nhiu ngun ti nguyn, mt my ch ring bit (my ch ng dng) c th c s dng. Chnh t nhu cu ny em li m hnh ba lp ca kin trc khch ch. Lp u tin chnh l my trm, lp th l my ch ng dng, v lp ba chnh l my ch iu khin d liu. Kin trc khch ch l hai lp khi cc thnh phn ng dng c t trn my trm cng vi thnh phn trnh din (Hnh. 1.4, Hnh. 1.5), hoc trn my ch cng vi trnh qun l ti nguyn v d liu (Hnh. 1.6). 8
Bn trong khung ca my ch ng dng, mt vi chc nng ng dng c th c thc hin, mi chc nng thit lp mu cc dch v ring bit, cung cp mt vi chc nng cho bt k chng trnh c th v mun s dng chng. C mt vi my ch ng dng, mi my ch hng v tp cc dch v xc nh. Bt ki mt chng trnh no s dng dch v u c xem nh l my ch. Chi tit thc hin cc chc nng ng dng trn my ch ng dng c n i i vi my trm. Cc truy vn nhn t cc ng dng ca my trm c t trong hng i kt hp vi cc my ch x l ng dng, tch v truyn truy vn cho vic x l theo ch u tin. My trm c th c nhiu hn mt thnh phn trnh din. Thnh phn trnh din c th h tr giao din cho ngi dng cui (ti thi im , n hot ng nh thnh phn trnh din); n c th cung cp chuyn d liu t cc thit b; v c th l my ch ng dng. Cui cng cho php thchin cc h thng ng dng, bao gm cc my ch ng dng ca vi mc. Kin trc ca h thng nh vy c th c xem nh l mt nhn bao xung quanh bi cc vng ng tm. Nhn bao gm cc my ch ng dng, m cc chc nng ng dng c bn c thc hin. Tp biu tng nhn ca cc my ch ng dng hot ng nh cc my trm lin quan n my ch ca mc trong. Khng c s gii hn s cc mc ca cc my ch ng dng. S hin din ca cc ng rnh gii gia cc thnh phn ca my ch phn mm trong kin trc khch/ch v s phn phi cn bng ca cc thnh phn trong cc my tnh ca mng cho php mc nh vy mm do khng c hiu lc trong kin trc ngang hng. Nh vy, ngun ti nguyn dnh mc cao ca s thc thi v kh nng m rng v ci tin chc nng ca h thng c th c thc hin. Kin trc mng khch/ch, xut hin giai on hai ca s tin trin cc cng ngh mng my tnh cn c gi l kin trc khch/ch c in. Sau y l mt s m t chc nng ca m hnh ny:
My ch khng sinh ra thng tin cui cng m l d liu, d liu ny tuy thuc vo s bin dch bi cc my trm Cc thnh phn ca h thng n dng c phn tn trong cc my tnh trn mng. Cc giao thc ring, khng tng thch vi TCP/IP, c th c s dng gia cc my trm v my ch. Mi my tnh mng c hng thc thi cc chng trnh cc b.
Chc nng cui cng ny sinh l bo mt thng tin. Khi ch cc chng trnh cc b c thc hin trn my tnh, s di chuyn cc chng trnh trn mng trong sut qu trnh x l cc truy vn c thc hin bi my trm n my ch khng xut hin. Kh nng thc hin cc chng trnh gy tc hi hoc s ly nhim my tnh s gim i V mt lu tr d liu v x l bo mt, kin trc khch/ch c s bt li sau:
Phn phi vt l ca cc thnh phn ca cc chng trnh ng dng v s hn lon, khng tun th qui tc ca cc h thng tnh ton lm phc tp xy dng v qun tr h thng bo mt Mt phn bo v ti nguyn thng tin lu trn my tnh c nhn c miu t bi v ph thuc tng im yu. Vic s dng cc giao thc ring cho vic chuyn i d liu gia cc my tnh yu cu vic pht trin cc cng c bo mt ring nh vy dn n tng chi ph.
Vi vic mt cc thit lp phn mm ca cc my trm, thc hin cc th tc phc tp cho vic kt ni li v phi hp my tnh ny vi phn cn li ca h thng l cn thit, dn n s tng thi gian phc hi li.
Hnh. 1.8: Kin trc khc/ch da vo cng ngh Web Ni cch khc, mt ti liu Web biu din cc ti liu siu media, bao gm cc trang Web c ni vi nhau bi cc lin kt. Mi mt trang Web c th cha cc i tng v cc lin kt ti cc trang Web khc. Theo qui lut nh, mt trang Web c biu din bi mt tp vn bn, vi nh dng xc nh m ch r cc lin kt ti cc i tng khc v cc vn bn Web, c xc nh trn cc host mng khc nhau. Thc ra, v bn cht mt vn bn Web cha ch mt trang Web nhng hp l nht l n c th bao gm s lng ln cc trang, m cc trang ny thuc v cc vn bn Web khc nhau. Mt trang Web c th cha vn bn v hnh nh. Khng ging nh vn bn giy, trang Web c th l tng tc vi cc chng trnh my tnh v c th cha cc lin kit n nhng i 10
tng khc. Bt k link no cha trong mt trang Web c nh du bi mu v/hoc du gch chn. H thng cc siu lin kt dnh c da vo yu l cc vng la chn ca ti liu, c biu din bi text, nh, hot ng nh cc lin kt n cc i tng c kt ni logic n chng. V vy cc i tng lin kt c th c lu tr ti v tr bt k no trn mng Mt trang Web c th cha lin kt n mt s kiu i tng sau:
Cc phn khc ca mt ti liu Web Cc ti liu Web hoc cc ti liu c nh dng khc (v d ti liu bng tnh, son tho), m cc ti liu ny c th c xc nh trn bt k my tnh no trn mng Cc i tng Multimedia, bao gm cc nh, m thanh v video. Mt chng trnh s c thc thi trn my ch sau kch vo lin kt Mt chng trnh c truyn ti cho my trm bng trnh duyt t my ch v c bin dch v thc thi trn my trm Cc dch v khc, bao gm e-mail, sao chp cc tp thng qua mng, tm kim thng tin vv..
T nhng nh ngha v ti liu Web, d dng cho cc chng trnh iu hng, thc hin trn cc my trm , khng b hn ch hin th cc trang Web v thc hin truyn ti cc i tng khc. Chng trnh iu hng c th l chng trnh thc s trn my ch v thng dch hoc chy cc mdun c kh nng thc thi lin quan ti ti liu Web trn my trm Vic truyn cc ti liu v cc i tng t my ch n my trm sau khi cc yu cu t trnh duyt c x l bi mt chng trnh hot ng trn my ch, chng trnh ny c gi l my ch Web. nhn c cc ti liu hoc cc i tng t my ch Web, trnh duyt gi mt truy vn thch hp t cho my ch. Nu c quyn hn, mt kt ni logic c thit lp gia my trm v my ch. Sau , my ch x l truy vn, truyn kt qu v cho trnh duyt Web v hy b kt ni. My ch Web hot ng nh l b tp trung thng tin lm nhim v truyn thng tin t cc ngun ti nguyn khc nhau v biu din chng cho ngi s dng trong mt cch thc ng nht. Trnh duyt cho php ngi s dng xem thng tin m khng ph thuc vo nh dng ca thng tin. kt ni kiu d liu phn tn v kiu d liu khc, cc ti liu Web cho php cn nhc thng tin vi yu cu y chi tit, lm n gin ha phn tch cc ni dung thng tin. iu ny rt hp l tp trung quan tm ti kha cnh quan trng ca d liu, v nghin cu ti nguyn la chn mt cch chi tit. Kin trc Intranet c mt vi u im: The following distinctive features of Intranet architecture should be emphasized:
Thng tin cui cng dnh hin th cho ngi dng xem bng chng trnh duyt c to trn my ch Tt c nhng ngun ti nguyn v h thng ng dng c tp trung trn my ch Cc giao thc ca b giao thc TCP/IP s c s dng cho vic trao i d liu gia my ch v cc my trm iu khin tp trung khng ch trn my ch m cn cho my trm rt thun li, v chng c chun v mt phn mm Cc my trm c th thc thi cc chng trnh t nhng my tnh khc trn mng 11
Tt ca nhng chc nng nay, loai tr chc nng cui cung, tr giup giai quyt vn bao mt thng tin. S tp trung tt ca ngun tai nguyn thng tin va cac h thng ng dung trn may chu lam n gian trong vic xy dng va quan tri cua h thng bao mt va bao v cac i tng cung mt ni se c thc hin mt cach d dang hn so vi kin truc phn tan. Vic s dung chun m TCP/IP cho vic trao i thng tin gia cac may tinh trong mang dn n vic thng nht cac phng thc tng tac gia cac tram lam vic va may chu. iu nay khng mang lai li ich giai quyt vn cua vic cung cp trong i thng tin an ton gia cc ng dng my ch trn cc my tnh. Gii php cho an ton tng tc pht trin cho tng mnh tnh s thch hp i vi tt c ng dng. S thun li ca iu khin tp trung ca cc my trm t my ch lm gim cc li khng mong i c th xy do ngi dng, iu hnh, v qun l. Nhng li nh vy l mt trong s e da chnh i vi n ton thng tin, dn n s ph hoi. V d, vic nhp d liu u vo khng chnh xc gy ra ngng chy chng trnh. Nhng li ny to ra ch yu c th b khai thc. Trong kin trc Intranet, gi x cc chng trnh x l thng tin phn tn vn c s dng t my ch c th c thc hin trn my trm. H thng nh vy ca vic x l phn tn cho php tp trung tt c cc h thng ng dng trn my ch. Tuy nhin, kh nng cc chng trnh thc hin t my ch trn my trm sinh ra nhiu s e da mi t an ton thng tin (v d, s e a l thay th chng trnh truyn t my ch [1,14]. V vy, kh nng di tr cc chng trnh b sung thm nhiu yu cu duy tr bo mt trn mng.
12
Hnh. 1.9: Lc tng qut ca s tng tc gia trnh duyt v my ch Vic truy cp ti cc dch v c bit ny l kh thi, v trn thc t, ngay t u, cc chng trnh nh hng Web c thit k nh l cc chng trnh a giao thc m c th cung cp mt giao din chung cho php truy cp n rt nhiu cc ngun ti nguyn mng. Hin ny, cc chng trnh nh hng Web ph bin nht hin nay l Firefox, Internet Explorer, Opera, Mozilla, Netscape navigator, Cc chng trnh Web ph tr c s dng thu c d liu thng k t my ch Web cho vic nh ch s thng tin cha trong my ch Web, hoc cho mc ch cp nht cc c s d liu cho cc c ch tm kim. Trong lc tng tc vi cc cng ngh Web, my ch Web hot ng nh mt chng trnh my ch chnh. Chng trnh ny c chy trn my ch v thc hin x l cc truy vn n t cc trm Web. S tng tc gia cc trm Web v cc my ch Web c thit lp theo tp cc lut c xc nh bi giao thc truyn siu lin kt (HTTP). Khi thc thi, my ch Web iu khin mt cng logic trn mng, m cng ny c gn mc nh bng 80, v coi nh bt k cc thng bo no gi ti cng ny c chuyn ti my ch Web. Khi nhn c mt truy vn t Web client, my ch Web thit lp truyn thng s dng TCP/IP v trao i thng vi Web client theo giao thc HTTP. Nu Web client yu cu truy cp thng tin c bo v trn my ch Web, my ch Web c th yu cu nh danh ngi dng v mt khu. Cc ti liu Web c bo v s ch hin th i vi nhng ngi dng c cc quyn truy cp thch hp. Cc ti liu nhn c bi trnh duyt t my ch Web tng ng vi cc tp vn bn c vit bng ngn ng c bit, gi l ngn ng nh du siu vn bn (HTML). Ngn ng ny bao gm tp cc qui nh v nh dng vn bn (trong bt k mt ngn ng no) v cch hin th trong ca s ca trnh duyt Web. Vic nh du xc nh nh dng, cng nh iu khin cch lin kt ti bt k i tng v ha s c hin th. Cng vi ngn ng nh du, cc chng trnh c vit bng ngn ng kch bn JavaScript v VBSCript c th c chn vo bn trong ti liu Web v trnh duyt Web s bin dch khi np v hin th ti liu Web. truy cp ti thng tin m my ch khng th x l trc tip (v d: truy cp c s d liu), mt h thng cng phn mm s c s dng. Cng phn mm, nhn truy vn t my ch Web, x l truy vn, hoc hot ng nh proxy gia my ch Web v my ch khc (v d: my ch DBMS). Cng phn mm pht trin theo cc chun c bit xc nh cc phng thc my ch c th gi cc ng dng hoc cc hm t cc th vin lin kt ng,v hn 13
th na cch thc ca trao i thng tin vi i tng chng trnh. Giao din cng chung (CGI-Common Gateway Interface) l mt trong nhng cc chun ph bin ny.
Hnh. 1.10: nh hng truy vn 6. Nu may chu Web h tr cy ao cua nhng may chu Web khac, vic tim kim se c inh hng ti ngun tai nguyn cn thit. 7. Nu may chu Web c s dung nh may chu uy quyn, mt mt no hoat ng nh la may chu Web cho cac may tram gi truy vn ti, mt khac no hoat ng nh tram Web, gi truy vn ti cac may chu (Hnh. 1.11).
14
Hnh. 1.11: S dng my ch Web nh my ch proxy 8. Sau khi tra v thng tin yu cu cho may tram, may chu Web huy bo kt ni. May chu Web co th c s dung giai quyt cac vn ln. in hinh, cac chc nng sau c h tr trn cac may chu:
H tr c s d liu vn ban phn cp, x ly truy vn va iu khin truy cp ti thng tin t cac chng trinh phia client Tin x ly d liu trc khi tra li mt truy vn Tng tac vi cac chng trinh m rng va cac may chu khac, vi du, cac c ch tim kim
Phn ln cac m hinh may chu Web nh Netscape's Enterprise Server, Microsoft's Internet Information Server b sung giao thc ma hoa Secure Socket Layer (SSL), duy tri s ring t, tnh toan ven, tinh xac thc cua d liu truyn trn mang. Giao thc SSL cung c b sung trong cac trinh duyt Web. Chc nng nay cung cp mt mi trng an toan cho vic s dung cng ngh Web trong cac mang may tinh.
Java applet c thc thi bi cng ngh Java Cac chng trinh c vit bng cac ngn ng kich ban nh JavaScript, VBScript, VRML Cac thanh phn ActiveX, lin quan ti cng ngh ActiveX
15
Thc t l, tn ti mt vi loi chng trnh d bin i c th c miu t bi cc kh nng chc nng khc nhau ca chng, v hn th na bi s cnh tranh gia cc cng ty trong lnh vc chng trnh v cc cn ngh mng nh Sun Microsystems, Netscape v Microsoft corporations, v cc cng ty khc.
16
Hnh. 1.12: Truyn v thc thi cc chng trnh Java c lp my S c lp ca m byte Java i vi phn cng v h iu hnh c kh nng thc hin c bi s thc hin chng trnh ca b vi x l Java o. iu ny dng cho thng dch cc applet cho tng nn tng M byte ca cc chng trnh Java c mt s chc nng sau:
M d dng thng dch trc tip m my cho bt k nn tng phn cng no. Chiu di trung bnh ca cu lnh trong m byte ngn ti thiu, v th gim phc tp v kch c ca applet Java khi so snh vi cc chng trnh thc thi bnh thng Mi m byte ca chng trnh cha thng tin y chng trnh cho php m ny c kim tra mt cch an ton cho vic thc thi.
M byte c pht trin lm gim chiu di trung bnh ca chng trnh mt mc hp l nht. B vi x l Java o c kin trc ngn xp v thnh ghi nh v thng x dng nh a ch gin tip. V th, phn ln cc cu lnh chim byte n. Ni chung, cc b vi x l Java c tp cc ch th cho tng kiu d liu. Do vy, chiu di trung bnh ca cu lnh Java ch c 6 byte. Chiu di trung bnh ca cu lnh cho b vi x l RISC sp x 4 byte. Hai chc nng quan trng c quy nh cho tc cao thc thi an ton v tin cy ca applet
Kim tra m byte m bo s ton vn v hp thc ca cc ch th trc khi thc thi. iu khin vo kha cc thao tc trong sut thi gian thng dch m byte
Vic np v kim tra cc m byte thc hin bi chc nng u tin, qun l bo mt ca b vi x l Java o thc hin bi chc nng th hai. Qun l bo mt truy cp ti cc tp v nhm thit b ngoi v bng applet v thc hin cc chc nng h thng nh cp pht b nh. Vi x l Java o cung cp s thc th v cc chc nng khc tc ng tin cy x l thng tin, v d tp hp d liu v ngha tng ng vi vic gii phng b nh. Ni chng, Java bm gm cc chc nng c ch i vi cc thao tc chnh xc cho cc i tng v ngun ti nguyn trong cc tnh hung khng mong i. Chu k phn mm applet tng t nh cc chng trnh vit bng ngn ng khc. Tin trnh thc hin applet khc vi tin trnh ca cc chng trnh thng thng khc (Hnh. 1.13).
17
Hnh. 1.13: Chun b v thc thi Applet Java V applet v cc thnh phn khc ca h thng ng dng c lu trn my ch, h thng h tr vic qun tr mt cch d dng hn. V th, m bo s dng lu di cc chng trnh cp nht hng ngy. Khng ch cc applet i din cc chng trnh lun bin i c th c vit bng ngn ng Java cc chng trnh ng dng cng c th c vit bng Java. Tuy nhin dnh c mc thc thi cao, m ngun ca chng trnh nn c bin dch, khng thnh m byte nhng m c lp vi my cho php thc hin trc tip bi cc b vi x l my trm. Hin nay, c rt nhiu cng c pht trin cho applet v ng dng Java, bao gm Microsoft Visual J++, Symantec Cafe, Borland Jbuilder, Sun Microsystems Java Workshop, v mt s cng c khc.
Ngn ng kch bn JavaScript, c pht trin bi Netscape v Sun Microsystems, v ngn ng VBSCript ca Microsoft. Ngn ng m t thc t o (Virtual Reality Modeling Language), c pht trin bi Silicon Graphics.
18
Ban u, JavaScript xut hin trong trnh duyt Netscape Navigator 2.0 di ci tn LiveScript. Sau , Netscape loi b tn ny v bt u lm vic vi Sun Microsystems v i n ng s dng Java. JavScript khng i din ngn ng Java, hai ngn ng ny c mt vi im chung, c kh nng gi ln nhau. (Bng 1.1). Bng 1.1: Cc c t ca Java v JavaScript JavaScript
Java
Chng trnh phi c dch thnh m byte Chng trnh c thng dch pha thc thi pha client client ngay khi khi to Hng i tng. Applets bao gm cc i Da i tng. Khng c lp cho c ch tng miu t s dng cc lp cng vi tnh tha k tha k Cc Applet c gi t cc trang Web, nhng Chng trnh c gi t cc trang c lu tr ring trong cc tp (nm ngoi Web, nhng c xy dng bn trong ti vn bn Web) liu Web Tt c kiu d liu v bin phi c miu ta Cc kiu d liu v bin khng cn phi trc khi x dng. khai bo Rng buc tnh. Cc lin kt i tng phi Rng buc ng. Cc lin kt i tng tn ti ti bc bin dch c kim tra trong xut qu trnh thc thi Khng th ghi vo a hoc thc hin cc Khng th ghi vo a hoc thc hin chc nng h thng cc chc nng h thng Javascript l ngn ng thng dch, n gin, da vo cc hm hng i tng. S d dng l nguyn nhn Bn cht hng i tng ca Javascript c chng t bi kh nng ca hot ng vi cc ca s trnh duyt, thanh trng thi v cc n v khc ca giao din trnh duyt v cc i tng mng trong h ng cp. Javascript khng phi phong ph nh ngn ng Java, nhng n thun li hn, hiu qu hn cho mt s cc tc v lin quan n x l cc ti liu Web v cho s tng tc vi ngi dng khi hin th cc tc v . y l ngn ng vi s lng ln v cu lnh v chc nng c xy dng sn. Cc chng trnh c viets bng Javascript c th cung cp cc hp i thoi, thc hin cc php ton hc, chi c cc tp video, audio, to ra cc ti liu, x l cc i tng button trong form v rt nhiu i tng khc. Cng vi s tr gip ca JavaScript, c th thit lp cc thuc tnh va c tnh ca nhng th vin nh phn Java, v hn th na l cc m dun chng trnh c b sung vo trong trnh duyt Cc cu lnh JavaScript c vit trc tip trong trang Web, v c thc hin bi trnh duyt trong khi trang ny c np, hoc trong khi cc thao tc m ngi dng thc hin tng tc vi trang Web (v d, khi click vo cc i tng bng chut, v tr ca con tr chut ti v tr lin kt, hoc nhp d liu trong cc trng ca mu HTML). Cng nh bt k cng ngh hay ngn ng no c s dng trong mng my tnh, x l thng tin an ton l yu tin hng u. Mc d Javascript khng c xem l ngn ng c tnh bo mt cao, n p ng c phn ln cc yu cu ny. Mt vi chc nng dn n vic d b tn cng khng tn ti trong ngn ng Javascript, chnh v vy cung cp tnh bo mt theo mt cch thc khng trc tip. Cc chng trnh c vit trong JavaScript, cng nh trong Java, b ngn cm thc hin cc thao tc i vi cc tp cc b. V vy, mt chng trnh khng c kh nng thay i hoc dnh c quyn truy cp ti d liu ca ngi dng. Ni chung, JavaScript khng h tr cc chc nng mng. V d, mt chng trnh khng th m cng TCP/IP, v ch c kh nng np cc i tng ti a ch cho v to ra d liu truyn n my ch Web. Cc trnh duyt cho php ngi dng thit lp cc mc an ton v iu khin 19
cc mc ny, v vy cc chng trnh c vit bng JavaScript ch c th tp trung vo mt vng xc nh thng tin. Nhng bt li ca Javascript l tc thc th tng i thp, bi v bn cht thng dch ca ngn ng. Bt li ny cng chnh l c tnh ca cc ngn ng lp trnh bin dch. Mt vn quan trng cn ch l phin bn ca Netscape v Microsoft l khc nhau. S khc nhau c th dn ti s khng tng thch. V vy, khi vit cc ng dng trong Javascript, cn kim tr s tng thch dch v trong mi trng ca chng trnh Microsoft VBScript tng t nh Javascript trong rt nhiu kha cnh. VBScript l tp con ca ngn ng Visual Basic, hng ti lp trnh cho cc trang Web. C th pht trin rt nhiu i tng bao gm cc thnh phn chng trnh ca cc ngn ng khc, trong trang Web trong khi s dng VBScript. V d, applet Java v cc iu khin ActiveX c th c lu trong trang Web, d dng tng tc vi ngi s dng Khng ging nh Javascript v VBScript, ngn ng VRML, c thit k bi Silicon Graphics, c nh hng c th tr gip to ra cc chng tnh thng dch gi lp th gii o 3D. Cc trnh thng dch VRML c gn vo bn trong trnh duyt, tng t nh cc m dun chng trnh. Cc m ngun ca chng trnh trong ngn ng VRML c lu trong tp VRML ring v c gi bi lin kt t vn bn Web khi n c xem trong trnh duyt. Kch vo lin kt nh vy dn ti m ca s ring, cho php ngi dng thng thc chng trnh.
20
Theo trit l ActiveX, trnh duyt Web s tr thnh mt phn khng th thiu ca h iu hnh. Hn th na, cc phng thc dnh c truy cp n bt k thng tin trn my tnh ca ngi dng, trn my ch ca mng cc b hoc trn Internet s l ging nhau, trong sut i vi ngi dng. Khi nim ny c thc hin trong phin bn trnh duyt Internet Explorer 4.0 V mt pht trin cc chng trnh hay bin ng, mt mt tp cc cng ngh ActiveX l s la chn thay th cng ngh Java v JavaScript, mt khc n l phn b sung thit yu cho cc cng ngh Java v Javascript. ActiveX khng nhng cung cp s pht trin v thc thi ca cc chng trnh di ng, m cn thc hin nhiu kh nng b sung nh gi cc hm xem v sa Word, Excel, PowerPoint t mi trng Web. ActiveX to ra tp hp cc hm API ( Application programming Interface - thc hin c pha trm v ch) c hiu lc vi cc nh lp trnh v tc gi ca ti liu Web. ActiveX h tr cc kiu chng trnh di ng sau, m c th c gn vo ti liu Web v truyn n my trm thc thi (hnh 1.1.5)
Cc iu khin ActiveX Java applets Cc chng trnh c vit trong cc ngn ng kch bn nh JavaScript, VBScript v VRML
Hnh. 1.15: S di chuyn ca cc chng trnh trong khi s dng cng ngh ActiveX Nhng cng ngh cho vic pht trin v s dng cc iu khin ActiveX, v ngoi ra cc chng trnh c vit trong ngng ng Macro VBScript c pht trin bi Microsoft. H thng rng ln phn mm ca Microsoft hot ng trn my ch m bo tnh hiu qu ca cc cng ngh ActiveX, c bit trn h iu hnh Windows NT v IIS. S tng tc my ch Web IIS vi cc ng dng, h thng qun l c s d liu (DBMS) c cung cp thng qua giao din ISAPI (Internet server API) v CGI (Common gateway Interface) thc thi trong IIS. iu khin ActiveX miu t cc chng trnh c kh nng thc thi, m cc chng trnh ny c th c np t my ch thc hin trn my trm. Cng nh cch dng Java applet, cc lin kt n cc chng trnh c xc nh trong vn bn Web. iu khin ActiveX khng cha cc thnh phn cu to ti liu Web. Chng c lu tr trong tp ring trn my ch. 21
Cc chng trnh ActiveX Controls bao gm m c kh nng thc thi, ph thuc vo nn tng phn cng-h iu hnh). M byte ca Java applet c lp nn tng. Cc n v np ca ActiveX Controls gi nguyn trn h thng my trm, ngc li, n c np mi khi Java applet c yu cu. Khi cc chng trnh ActiveX Controls khng lm theo cch thc tng t nh Java applets di iu khin ca vic qun l bo mt, cc chng trnh c th dnh c truy cp ti a v thc hin cc chc nng khc cho cc ng dng
V cc chng trnh ActiveX Control l cc ng dng c lp trnh, cc ng dng ny c th c pht trin v c th thc hin cc thao tc cng vi s tr gip ca bt k ngn ng lp trnh no. V mc ch ny, cc cng c pht trin nh Visual C++, Visual Basic, Delphi, Visual J ++ v mt s ngn ng khc c th c s dng. Microsoft pht trin mt gi cng c c gi l Microsoft ActiveX Developent Kit (MADK) Cc thnh phn ActiveX, cng nh cc chng trnh c vit bng ngn ng Javascript v VBScript c th gi cc hm API AcitveX biu din s dch v nh sau:
To ra tnh hiu qua a phng tin cht lng cao M v xa i cc ti liu in t, bng vic gi cc ng dng h tr chun nhng v lin kt i tng (OLE- Object linking, and embedding) Truy xut ti h iu hnh ti u cc tham s thc thi ca chng trnh dnh c t my ch
Nhng chng trnh c vit bng JavaScript v VBScript c th t ng tng tc gia nhiu i tng, bao gm Java applets, thnh phn ActiveX v cc chng trnh khc trn my trm, cho php cc i tng lm vic vi nhau nh l mt phn ca s tch hp, khng gian Web ng. C th to ra ngn ng macro ty bit, v b sung b thng dch vo trnh duyt IE, cng vi s tr gip ca th vin lin kt ng (DLL). So snh vi Java, cng ngh ActiveX c nhng im li v bt li. im bt li chnh l mc bo mt thp v mt x l thng tin phn tn. Cc thnh phn ActiveX np trong my trm c th truy cp ti bt k phn no ca h thng, tng t nh i vi cc ng dng thng thng. Trong framework ActiveX, Microsoft thc hin bo v s ring t da trn s chng nhn s. Nhng chng nhn ny cung cp tnh xc thc xc nhn cc thnh phn chng trnh c np t mng. Tuy nhin, vic xc nhn tnh xc thc khng c ngha l xc nhn tnh bo mt. V kha cnh bo mt , lc bo mt ca Activ c th khng hiu qu khi ngi dng np thnh phn ActiveX t Internet, c bit nu cc thnh phn ny khng r ngun gc. Cng vo thi im , khng ging nh Java applets, cc thnh phn ActiveX cho php thc hin cc hm ph hp pht trin chng trnh ng dng. Chc nng ny l im li cho mng cng ty, vi iu kin phi gii hn tnh bo mt thch hp c thit lp (v d, ng cho php np cc iu khin ActiveX t my ch cng ty) V mt thc thi, v Java l ngn ng thng dch, Java applet c thc hin trn my o ca h thn my trm vi tc thp hn so vi cc iu khin ActiveX Controls. Nhng, v kha cnh khc, Java applets rt c ng, v th n c np rt nhanh. Np cc iu khin ActiveX yu cu nhiu thi gian hn. Cn phi rng cc chng trnh Activex Control lu li trong h thng my trm, ngc li np tt cc Java applet mi ln mi. Lin quan n
22
an ton, thuc tnh ny l mt bt li, khi n phn tn s tp trung ca h thng ng dng. Nhng nu quan tam v kh nng thc hin, l li th ca ActiveX so vi Applet V c lp vi phn cng v OS, ActiveX v tr th hai i vivi cng ngh Java. Mc du pht biu ca Microsoft l ActiveX cung cp a nn h tr cho Macintosh, Windows, v cc h iu hnh Unix, cng ngh ActiveX hot ng trn cc nn tng Windows tt nht, bi v chng c pht trin cho vic s dng cc hm xy dng trong cc h iu hnh Windows. Do , ActiveX c th c x dng i vi ton b khu vc trong hot ng mng di s iu khin ca cc h iu hnh Windows.
Truy cp n may chu DBMS thng qua may chu Web Truy cp trc tip ti may chu DBMS
23
Hnh. 1.16: Truy xut n DBMS thng qua chng trnh CGI
Chng trinh CGI co th c vit bng ngn ng ph bin nh Perl. Yu cu chinh o la tun thu theo quy inh chun CGI. Mt trong nhc im cua chun CGI la kha nng x ly truy vn qua chm trong khi s oi hoi ngay cang ln. Mi ln chng trinh CGI c goi, no phai c nap vao ia (tng ng vi mt ln chay mi) va iu nay lam anh hng ti kha nng thc thi cua chung. Sau khi chng trinh kt thuc, no se giai phong cac ngun tai nguyn no a s dung trc o.
Hnh. 1.18: Truy xut n DBMS cng vi s tr gip ca ActiveX control Giao din kt ni c s d liu Java (JDBC) c pht trin s dng cc Java applet truy cp ti my ch DBMS khc nhau. Vic a ra giao din c nh hng h tr tng tc vi my ch DBMS, khng ch cho Java applet thc th trn my trm ch m cho php chng trnh Java thc thi trn my ch Truy cp t trnh duyt ti my ch DBMS cng c th c thc hin bi kiu khin ActiveX, cng nh trng hp s dng Java applet, truy vn v truyn chng trnh thch hp trn my trm, v c thc th trn my trm. Trong trng hp ny, s tng tc vi my ch DBMS s c thc hin thng qua giao din ODBC. s dng cc mdun chng trnh chuyn dng kt ni n trnh duyt (plugin) cho php truy cp t trnh duyt Web n my ch DBMS, cn ci t chng trnh thch hp trn my trm. Sau , s tng tc my ch DBMS s nhn ra phn mm ci t v dnh c iu khin t trnh duyt Web, trong khi x l li gi thch hp trong ti liu Web. trnh s khng tng thch, s tng tc ca cc mdun chng trnh kt ni vi my ch DBMS cng nh vi cc thnh phn ActiveX nn c thc hin thng qua giao din ODBC.
26
Phn t (element): c 2 loi phn t trong HTML Phn t cha ni dung: bao gm th ng v th m o V d: <p>Ni dung </p> Phn t rng: bao gm 1 th o V d: <br>
27
Thuc tnh(properties): mi th bao gm mt hoc nhiu thuc tnh i km. Thuc tnh c nhp vo ngy trc du ngoc ng(>) ca th. C th s dng nhiu thuc tnh trong mt th. Thuc tnh ny k tip thuc tnh khc, phn cch nhau bi khong trng. V d: <table border=1> Gi tr: Ngoi cc thuc tnh khng c gi tr cn c cc thuc tnh ca tag c gi tr. V d: thuc tnh CLEAR ca tag <BR> c ba gi tr la chn: left,right, all. Th lng nhau: dng chnh sa cch trnh by ni dung trong mt trang Web. Trt t sp xp ca nhng tag lng nhau l th c m u tin s l th ng sau cng V d: <H1> Phn <I>Ni dung</I><H1> Khong trng: Trnh duyt b qua cc khong trng. Tn tp tin: phi t tn tp tin vi phn m rng l .htm hoc .html iu ny gip trnh duyt nh ra loi ti liu khi duyt. to mt trang Web, chng ta c th s dng bt k mt trnh son tho no to ra mt trang Web
2.3.2 Cc th nh dng vn bn
inh dang ch Cu phap <FONT Face = fontname1,fontname2,..></Font> Trong o: o fontname1 l phng ch c chn o fontname2 c s dng khi trn my ngi dng khng tn ti fontname1 o V d: <font face = Arial, Time new roman, bold> nh dng kch thc ch: dng nh kch thc cho ton b vn bn 28
C php: <Basefont size = n> n mang gi tr t 1 n 7. Gi tr mc nh l 3. nh mu cho vn bn C php: <Font color = Gi tr></Font> Color: l mu dng cho ch. Gi tr mu c th g bng ch hoc h s hexa (16) V d: <Font color=red> Lp lp trnh Web </font> <Font color=#FF000> Lp lp trnh Web</font> nh dng ch Th <B>ni dng</B> hoc <Strong>Ni dung</Strong> Th <I>ni dng</i> hoc <em>ni dng</em> nh dng ch s trn m di Ch s trn: <SUP></SUP> V d: AX2+BX+C =0 AX<SUP>2</SUP>+BX+C=0 Ch s di: <SUB></SUB> - V d: C+02=C02 C+O<SUB>2</SUB>=CO<SUB>2</SUB> Phn on vn bn C php <P thuc tnh=gi tr> Thuc tnh align: canh on vn bn. Align c th nhn cc gi tr sau Left: ni dng trong on c canh tri Righ: ni dung trong on c canh phi Center: ni dung trong on c canh gia Th phn cp mc: Trong HTML cho php s dng 6 cp mc trong trang Web C php: <Hn>Ni dung</Hn> vi n mang gi tr t 1 ti 6 V d: <H1> Gim c </H1> <H2> Ph gim c </H2> <H3> Nhn vin </H> Chn hnh nh vo trang Web C php: <IMG SRC= tn tp tin cha hnh nh> Tn tp tin cha hnh nh c c ng dn th mc. Nu tp tin hnh nh c t cng th mc vi th mc cha trang Web th khng cn ng dn th mc V d <IMG SRC=images/anh1.jpg> Thm ng vin xung quanh hnh nh C php: <IMG SRC=tn file Border=n> Vi n l dy ca ng bin nh, tnh bng pixel V d <IMG SRC=images/anh1.jpg border=2> Canh chnh hnh nh C php: <IMG align=gi tr>Ni dung Gi Tr: o left: hnh nh nm bn tri mn hnh o right: hnh nh nm bn phi mn hnh o center: hnh nh nm gia mn hnh o V d <image src="IBM.jpg" align=left">Xin cho Thm ch xung quanh hnh nh C php: <IMG SRC=tn file align=gi tr> Ni dung Gi tr 29
o Top: v tr vn bn nm phi trn hnh nh o middle: v tr vn bn nm gia hnh nh o bottom: v tr vn bn nm di hnh nh Chn nh nn <html> <body background="background.jpg"> <h3>Look: A background image!</h3> <p>Both gif and jpg files can be used as HTML backgrounds.</p> <p>If the image is smaller than the page, the image will repeat itself.</p> </body> </html> ng k ngang trang Web Th <HR>: dng k ng ngang trn trang Web, gip trang Web r rng hn. C php: o <HR size=n width=w align=gi tr> Size: dy/mng ca ng k tnh bng pixel Width: chiu rng ca ng k tnh bng pixel Align: canh ng k. C 3 gi tr left,right, center nh mu nn cho trang Web nh mu nn cho trang Web, b sung thuc tnh bgcolor vo trong th BODY C php <BODY bgcolor=color> Color l mu cn nh cho trang Web nh nh nn cho trang Web Dng hnh nh lm nn cho ton trang Web thy v s dng mu nn C php <BODY background=tn tp> Tn tp l tn tp tin hnh nh cn lm nn cho trang Web Xung dng trong trang Web C php <BR> To danh sch theo th t C php <OL Type = X START=n> <LI> Ni dung mc 1 <LI> Ni dung mc 2 .. <LI> Ni dung mc N </OL> Trong X nh kiu k hiu s c s dng trong danh sch o A l ch hoa o a danh sch c anh theo th t ch thng o I,I,1 o N l gi tr bt u ca danh sch To dm trn (bullet) cho danh sch C php <UL Type=kiu chm trn> <LI> Ni dung mc 1 <LI> Ni dung mc 2 .. <LI> Ni dung mc N 30
</UL> Trong kiu chm trn mang mt trong 3 gi tr sau: o disc: kiu du chm trn m o Circle: kiu du chm trn rng o Square: kiu du chm vung c To danh sch nh ngha: l loi danh sch c dng mt t hay mt cm t km theo ni dung di, rt thch hp gii thch ngh ca ni dung C php: s dng cc th <DL>, <DT>, <DD> o <DL>: to danh sch nh ngha o <DT> :nh du thut ng c nh ngha trong danh sch o <DD>: gii thch thut ng trn V d <DL> <DT><B>Hng cng ngh phn mm></B> <DD> o to ra nhng lp trnh vin, p ng nhu cu cn thit ca x hi </DD> </DL>
31
HTML dng cc k t < v > m v ng 1 th, do khng th hin cc k t c bit ny. V vy cn c mt nhm k t thay th
o Width, height: nh chiu rng, cao cho To khung vin cho bng o <Table border=n> Thay i mu khung o <Table bordercolor=mu> Thit lp rng o <table width = gi tr> Thit lp tiu cho bng o <caption>Ni dung</caption>
khng g thng tin g, size nh kch thc ca Textbox, maxlength gii hn s k t nhp vo Textbox To Textboxx vi vng vn bn cha nhiu dng o C php: <textarea name = name rows = n, cols = m wrap><textarea> o Trong name l chui k t nhn din d liu nhp vo, n l chiu cao ca vng vn bn tnh bng dng (mc nh = 4), m l chiu rng ca vng vn bn tnh bng k t (mc nh = 40). To nt Radio button: Radio l nt ch c hn mt trong s , khng th chn la hai nt cng lc o C php <input type = radio name = name value = data checked> To chn (checkbox): khc vi Radio, checkbox cho php chn nhiu nt trong mt nhm. o C php <input type = checkbox name = set value = value checked> To nt Push button (nt nhn) o C php<input type = button value = nhn> o to nt nhn khi ngi dng nhn vo, d liu ca cc iu khin khc u c t gi tr mc nh lc khi to, c th ch nh thuc tnh type =reset trong tag <input>. To nt nhn kt thc vic nhp d liu ca mt Form, ta ch nh thuc tnh type = submit trong th <input> To Dropdown Listbox: l danh sch cha nhiu mc o C php
34
35
V d body{color: black} /*Phn ch trong th body s c mu en*/ hay: p {text-align: center} /*tt c cc th <P> trong trang HTML s c canh gia.*/ hay nh ngha nhiu thuc tnh: p { text-align: center; color: red; font-family: arial } Style sheet gii thiu mt s ty chn cc nh thit k c thm quyn iu khin style cho cc phn t a. Dng CLASS lm phn t chn Bng vic to ra cc lp, c th nh ngha nhiu kiu th hin khc nhau cho cng mt th HTML v p dng mi lp vo mt v tr cn thit trn trang web. C 2 cch thc dng CLASS: Cc CLASS gn vi 1 th c th V d: Trn trang web c 3 loi on vn: on vn canh l tri, on vn canh l gia v on vn canh l phi. Khi c th nh ngha 3 lp ring bit cho 3 loi on vn ny nh sau: p.trai {text-align: left} p.phai {text-align: right} p.giua {text-align: center} Tip theo, trong trang HTML s dng nh sau: <p class="trai">on vn ny c canh l tri.</p> <p class="phai">on vn ny c canh l phi.</p> <p class="giua">on vn ny c canh l gia.</p> Ch : - CSS phn bit ch hoa v ch thng ging nh C++ do khi vit cn phi cn thn trong vic s dng ch hoa, ch thng. - Trong trang HTML, ch c php khai bo 1 th thuc duy nht mt lp. Tri iu ny mc d trnh duyt khng bo li nhng cc lp s khng hot ng c. V d v s dng lp sai: <p class="trai" class="phai">y l on nh ngha sai</p> Cc v d trn l v d v vic to cc lp b "gn cht" vi mt th no , tc l khng s dng c lp ny trong th khc. Theo cc khai bo trn, v d di y s khng hot ng: <td class="trai">V d ny khng hot ng</td> Cc CLASS khng gn vi mt th c th (c th gn vi hu nh tt c cc th): 36
C th to ra mt lp m lp c th gn vo hu nh bt c th no trn trang web bng cch b tn th u i nhng nh gi li du chm (.) V d: nh ngha mt lp "giua" c th gn vi bt c th no .giua{text-align="center"} v trong trang HTML ta s dng nh sau: <p class="giua">on vn ny c canh l gia.</p> <td class="giua">Cu ny cng c canh l gia.</p> b. Dng ID lm phn t chn Tng t nh cc lp, cc nh danh cng cho php chia cc th thnh nhiu loi khc nhau. Tuy nhin trn thc t th nh danh khc vi lp!!! Mt lp c th p dng nhiu ln nhiu v tr trn trang web, tuy nhin 1 nh danh ch c th p dng c duy nht cho 1 th v tn ca nh danh phi l duy nht trn 1 trang web. Qui tc cho Style dng ID lm phn t chn bt u bng du thng (#) Cc v d: 1. on m di y c th p dng cho th <P> c ID l para1 p#para1 { text-align: center; color: red } Khi s dng nh sau: <P id="para1">on vn bn</p> 2. on m di y c th c hiu lc cho th u tin c ID l xyz: *#xyz {color: green} Khi s dng: <p id="xyz">on vn bn</P> 3. on m di y ch c th p dng cho th <P> u tin: p#wer345 {color: green} Khi s dng: <p id="wer345">on vn bn</p> V on di y khng c hiu lc:
37
<h1 id="wer345">on vn bn khng c p dng</p> c. Cc phn t chn theo ng cnh Nu chng ta mun tm kim v d v mi quan h cha-con gia mt on paragraph cng vi phn t em bn trong paragraph, chng ta xem cc phn t chn con lm vic nh th no. Trong v d ny, phn t em v ni dng ca n tha k cc chc nng lut t cha n phn t p Nu chng ta mun gn lut kiu khc cho phn t con, chng ta c th s dng c php cung cp bi phn t con. t phn t cha trc, sau l phn t con, cng vi khong trng gia 2 phn t:
p em
Sau , c th vit bt k th g trong khi miu t s c p dng i vi cc phn t con. d. Cc phn t chn CLASS gi (Pseudo Class Selectors) c s dng i vi cc kiu lin kt, ngoi ra cn c s dng cho cc mc ch khc nh b sung hiu ng cho cc th. Sc mnh ca loi phn t ny s c pht huy i vi cc lin kt l s kt hp ca cc phn t vi phn t lp to ra cc kiu a lin kt m c th p dng cho mt trang. Phn t lp gi lp lin kt bt u bng mu neo (anchor), tip theo l du :, cui cng l tn lp gi lp. Mt s phn t la chn lp gi lp lin kt qui c nh sau: a:link a:visited a:hover a:active C th vit cc lut cho mi phn t chn lp v chng c th ng dng n ton b cc lin kt Chng ta c th kt hp cc phn t chn trong mt lp, lp ny cho php to ra kiu a lin kt. thc hin iu ny, chng ta bt u bng anchor, tip theo l du ., sau l tn lp, du :, v lp gi lp. V d a.main:link a.subnav:link a.footer:link Trong v d ny, cc lin kt trong cc lp ca main, subnav, v footer c th c cc qui tc lut khc nhau to cho chng e. Cc phn t chn phn t gi lp (Pseudo Element Selectors) C bn phn t tr gip nh lp trnh dnh c mc tiu in n c m t bng di y:
38
Cc phn t chn gi lp trong CSS2 Mc ch la chn v p dng ti dng u tin trong phn t nh sn la chn v p dng kiu n k t u tin trong phn t Cho php xc nh ni dng trong t kiu dng c chn pha trc phn t nh sn Cho php xc nh ni dung trong t kiu dng c chn sau phn t nh sn
p dng kiu khc nhau n dng u tin trong paragraph, s dng c php phn t gi lp:
p:first-line
Nu mun b sung ni dung sau hoc trc mt phn t, cn phi nh ngh ni dung trong t kiu dng. sinh ra ni dung s dng phn la la chn gi lp trc v sau, chng ta nh ngha phn t n lut s c p dng, phn t gi lp troc, sau, thuc tnh ni dung, v ni dung trong du nhy kp
h1:after { content: "header note" }
Kt qu: Cu hearder note xut hin sau h1 f. Nhm cc phn t la chn - Selector Groups Nhm phn t la chn cho php ngi dng nhm cc phn t la chn vi nhau khi mun gn cc phn t la chn ny nhng thuc tnh ging nhau. . V d di y s nhm tt c cc th Header li, nh ngha chng s c mu xanh, v s dng font arial hoc sans-serif:
h1, h2, h3 {font-family: Arial, sans-serif; color: green }
39
Cc phn t ng cnh cho php to mu phn t con tch bit vi phn t cha. Phn t ny p dng khi cn lng ghp cc phn t. V d, chng ta c nhiu phn t em trong phn t division, div v paragraph trong division ny c th c cc phn t strong. V d: nu vit phn la ng cnh sau: div strong tt c cc phn t strong trong div thm tr trong cc phn t paragraph (chu)-s b nh hng bi tnh tha k Cc phn t con ch cho php la chn con. iu ny c ngha l, chng ta c th c m bo rng ch c cc phn t em bn trong div,ch khng phi trong cc cu trc khc lng bn trong div s b nh hng. lm c iu ny, chng ta bt u bng vic s dng phn t, bn phi du > v phn t con trong vn : div>em Chng ta c th nhn thy s phc tp. Nu chng ta mun la chon phn t em trong phn t paragraph bn trong phn t div, th vit nh sau: div>p>em Tt c phn t con trong phn t paragraph, khng c nm bn ngoi, s uwocj nh dng trong qu tc k tip theo Cc phn t con First Mt phn t con first cho php . Kiu phn t la chn ny ch p dng iv oi con u tin ca phn t nh sn. p dng kiu ny n con u tin, cung cp phn t cha cng vi c php phn t la chn con u tin
p:first-child
Bt k qui tc no chng ta vit cho phn t la chn ny s c p dng n phn t con u tin ca tt c paragraph Phn t la chn k cn Phn t ny tr gip nh dng cc phn t cng mt cha. Cc phn t cng mt cha l cc phn t nm trong cng mt mc ca cy t liu v chia s mt cha chung. V d
<p>I find books by <a http://www.marthagrimes.com/">Martha Grimes</a> to be the quintessential escapist experience. A good mystery and a <a href="http://www.adagioteas.com/">cup of tea</a> on a rainy day is true relaxation.</p>
Phn t la chn thuc tnh Kiu phn t la chn thuc cho php la chn cc phn t da v thuc tnh m cc phn t c. V d, nu chng ta c mt lin kt trong URL, c th to bi phn t ny thay v phn t anchor ca chnh no. Mi thc th ca URL c nh dng theo qui tc kt hp vi phn t la chn thuc tnh 40
C bn kiu dng c sn cho phn t nh miu t bng di y Cc mc iu khin c th dnh c bi kiu phn t la chn ny t gy ngc nhin. Table 2.3: Attribute Matching C php [att] [att=val] [att~=val] [att|=val] Mc ch p dng kiu iv oi thuc tnh a ra, khng quan tm ti gi tr p dng ku i vi thuc tnh a xa trong gi tr xc nh p dng kiu n bt k thuc ny no trong gi tr phn cch bi du cch p dng kiu n bt k thuc ny no trong gi tr phn cch bi du |
Visual bt k thuc tnh no nh hng n s biu din trc quan ca ti liu nh font, nn v mu Aural Cc thuc tnh lin quan ti kiu tai, nh chc nng m thanh. Paged Cc thuc tnh lin quan n trang media nh in v mn hnh
Cc thuc tnh tc k Cc thuc tnh ny cn c tn khc l nhm l cch thc vit tt cc quy tc kiu. Cso mt vi thuc tnh tc k khi so snh vi cc thuc tnh y . Thuc tnh rt gn, thuc tnh c th thay th nhau v nhm media thuc vo c miu t nh sau Tc k background Cc thuc tnh background-attachment background-color background-image background-position background-repeat border-color border-style border-width border-bottom-color border-bottom-style Nhm media visual
border
visual
border-bottom
visual
41
Tc k
Cc thuc tnh border-bottom-width border-left-color border-left-style border-left-width border-right-color border-right-style border-right-width border-top-color border-top-style border-top-width cue-before cue-after font-family font-size font-style font-weight font-variant line-height list-style-image list-style-position list-style-type margin-top margin-right margin-bottom margin-left outline-color outline-style outline-width padding-top
Nhm media
border-left
visual
border-right
visual
border-top
visual
cue
aural
font
visual
list-style
visual
margin
visual
outline
visual, interactive
padding
visual 42
Tc k
Cc thuc tnh
Nhm media
padding-right padding-bottom padding-left pause-after pause-before Chng ta tng vit kiu tc k khi nhm cc phn t la chn li v d:
h1 h2 h3
pause
aural
Chng ta c th la chn s dng thuc tnh font, thay th bng thuc tnh tc k
p } { font: bold normal 16px/15px Arial, sans-serif;
Mi quan tm hng u khi nhm l th t ca gi tr. Mt v d cho iu ny l khi lm vic vi thuc tnh margin: chng ta phi a ra gi tr theo th t top,right,left, v bottom
body } { margin: .10in .75in. .75in. .10in;
Ch thch trong CSS Bn c th b xung cc ch thch cho on m ca mnh trong CSS. Cc on ch thch s c trnh duyt b qua. on ch thch c to ra tng t nh trong C++ (t bt u bi /* v kt thc bi */) V d:
/* y l on ch thch*/ p { text-align: center; /* V y l mt on ch thch khc */ color: black; font-family: arial }
43
--> </style> </head> <body> <p> Mi on s c vin <b>m</b> mu bc </p> </body> Cch dng style sheet nhng lun uyn chuyn v d bo tr hn cch dng inline style. Chng hn mun thay i mu ca P trong ti liu, ch cn thay i mt th: gi tr tng ng vi thuc tnh background-color Lin kt n style sheet C th lu style sheet trong mt tp tin ring bit v lin kt n n mt hay nhiu ti liu, s dng th <LINK> trong phn <HEAD>: <LINK REL=stylesheet type=text/css href=mystyles.css> Style sheet c lin kt cha nhng khai bo v style, hot ng ging nh style sheet nhng, chh khc l nhng style rule khng ng trong cp th <style type =text/css></style>. Vic lin kt n mt style sheet bn ngoi cho php nh pht trin p dng style sheet cho nhiu ti liu khc nhau. Bao gp mt style sheet Mt style sheet bn ngoi c th c bao gp (import) vo trong ti liu bng cch dng thuc tnh @import trong style sheet: @import:url(mystyles.css); Th @import nn t u khi style hay i vi mt sheet lin kt th l trc bt c mt khai bo no. Nhng qui tc c bao gp trong style sheet s c p dng trc nhng qui tc khc nh ngha cha style sheet Cc cch dng style Inline style: dng cho vn bn ring l Style nhng: nh dng mt hay nhiu ti liu tm vc ton cc Kt hp inline b sung cho style nhng hay iu chnh n cho mt vi phn t c th
45
M hnh hp M hnh hp tin tng vo cc qui tc qun tr hin th mt cch chnh xc. Vic thc thi m hnh box c s khc bit trong cc trnh duyt chnh C 2 kiu chnh ca cc phn t : Block-Level Elements l mt trong phn t c nh dng nh mt hp. N c th cha cc phn t nm bn trong v cc phn t block-level khc. c bit, cc phn t ny bt u trn mt trong mi. V dng bao gm: h1-h6, p, form, table, ol, ul. Inline Elements xut hin bn trong ni dung, v c th cha vn bn hoc cc phn t inline khc. V d: a, em, strong, img, input. Phn t block-level sinh ra hp chnh. Hp ny c kh nng cha cc hp khc hoc cc phn t block-level khc. Bn trong phn t inline, cc hp nm theo chiu ngang c bit nh l hp ng Tt c hp c chia thnh cc vng sau: Content area (text, objects) Vng ni dung c nh ni dung bao quanh ni dung thc s phn t. Padding Cc nh xung quanh padding ca hp Borders nh border xc nh border ca hp Margins nh mp margin xung quanh margin hp v c nh ngha bi nh: left, right, top, bottom. Nu mt margin c rng bng 0, n tr thnh nh border. Nu nh borger c dy bng 0, n tr thnh nh ca padding. Nu padding c dy bng 0, n tr thnh nh content 46
C vi cch thc chung b tr cc phn t CSS nh sau: Static Hp tnh c chy trn da vo khi ca n hoc chc nng inline. Float Hp ng dch chuyn t tri qua phi. Absolute position Hp tuyt i c t chc c bit s dng ranh gii theo ta x-y. Relative position Hp tng i c t chc lin quan n ni hp c mong i bn trong lung d liu.
47
48
Kch bn trong mt trang s c thc thi ngay khi trang c np trong trnh duyt. iu ny khng phi lc no cng cn thit. Thnh thong cn thc hin script khi mt trang c np, lc khc khi s dng trigger mt s kin. Cc on script c th c t cc v tr sau: t Script trong phn head: Script c thc thi khi chng c gi hoc khi c mt s kin c trigger th s t script phn head. Khi t script phn head, iu ny s m bo rng, script c np trc khi s dng n. <html> <head> <script type="text/javascript"> Cu lnh </script> </head> t Script trong phn body: script c th thi khi mt trang np. Khi t phn ny, scipt sinh ra ni dung ca trang. <html> <head> </head> <body> <script type="text/javascript"> Cu lnh </script> </body> t Script trong c phn body v phn head: C th t khng gii hn s script trong ti liu, c th t phn body v phn head. <html> <head> <script type="text/javascript"> Cu lnh </script> </head> <body> <script type="text/javascript"> Cu lnh </script> </body> Thnh thong, mun chy cng mt on script cho nhiu trang, khng phi vit li on m trong tng trang , c th vit on m trong mt tp ring vi phn m rng l .js. V d vit cu lnh di y v lu trong tp xxx.js: document.write("Script cha tp ring bit ") s dng tp ny, s dng thuc tnh src
<html> <head> </head> <body> <script src="xxx.js"></script> </body>
49
</html>
- Kiu vn ban (chui): bt u bng du () hoc () V d: Hello World , Hello World, Peter OToole , Peter O\Toole, 'Hello "Paul"', "Hello "Paul"", "Hello \"Paul\"" Ngoi ra cn c cc kiu ki t c bit sau y: K t c bit K t i din \b Phm li \f Form feed \n Dng mi \r Phm xung dng \t Tab \' Nhy n \" Nhy kp \\ Du cho ngc \xNN NN l s hexa xc nh k t trong tp k t Latin-1 - Kiu Boolean: Co 2 gia tri Yes hoc No, True hoc False
a. Cach t tn bin
Tn bin phn bit ch hoa va ch thng Tn bin bt u bng ki t hoc du gach di character Khng c c khong trng gia cc k t
e. Toan t chui
txt1="What a very" txt2="nice day!" txt3=txt1+txt2 V d: <html> <body> <script language="JavaScript" type="text/javascript"> var string1 = "Hello"; var string2 = "Goodbye"; alert(string1); alert(string2); string2 = string1; alert(string1); alert(string2); string1 = "Now for something different"; alert(string1);alert(string2); </script> </body>
f.Chuyn i kiu:
chuyn i kiu d liu, Javascript h tr hai hm sau Ham parseInt(): chuyn chui sang s nguyn Eg: parseInt(123) = 123; parseInt(1234abc) = 1234 Ham parseFloat(): chuyn chui sang s thc
V d: <html> <body> <script language="JavaScript" type="text/javascript"> var myString = "56.02 degrees centigrade"; var myInt; var myFloat; document.write("\"" + myString + "\" is " + parseInt(myString) + 52
" as an integer" + "<br>"); myInt = parseInt(myString); document.write("\"" + myString + "\" when converted to an integer equals " + myInt + "<br>"); myFloat = parseFloat(myString); document.write("\"" + myString + "\" when converted to a floating point number equals " + myFloat); </script> </body> </html> Kt qua: "56.02 degrees centigrade" is 56 as an integer "56.02 degrees centigrade" when converted to an integer equals 56 "56.02 degrees centigrade" when converted to a floating point number equals 56.02 Trong mt s trng hp, mt s chui khng th chuyn i thanh s vi du nh cac chui khng cha bt ki mt s nao ca. Chuyn gi xay ra nu chung ta chuyn i chui o. V d: <html> <body> <script language="JavaScript" type="text/javascript"> var myString = "degrees centigrade"; var myInt; var myFloat; document.write("\"" + myString + "\" is " + parseInt(myString) + " as an integer" + "<br>"); myInt = parseInt(myString); document.write("\"" + myString + "\" when converted to an integer equals " + myInt + "<br>"); myFloat = parseFloat(myString); document.write("\"" + myString + "\" when converted to a floating point number equals " + myFloat); </script> </body> </html> Kt qua: "degrees centigrade" is NaN as an integer "degrees centigrade" when converted to an integer equals NaN "degrees centigrade" when converted to a floating point number equals NaN NaN: not a number NaN la gia tri c tra v bi ham isNaN(). NaN chi nhn mt trong 2 gia tri True hoc False V d: myVar1 = isNaN(Hello);. Gia tri NaN = False myVar2 = isNaN(123);. Gia tri NaN = True
if (iu kin) { Cu lnh thc hin nu iu kin ng }else if (iu kin) { Cu lnh thc hin nu iu kin sai } Else { } V d: <html> <body> <script language="JavaScript" type="text/javascript"> var myAge = Number(prompt("Enter your age",30)); if (myAge >= 0 && myAge <= 10) { document.write("myAge is between 0 and 10<br>"); } if ( !(myAge >= 0 && myAge <= 10) ) { document.write("myAge is NOT between 0 and 10<br>"); } if ( myAge >= 80 || myAge <= 10 ) { document.write("myAge is 80 or above OR 10 or below<br>"); } if ( (myAge >= 30 && myAge <= 39) || (myAge >= 80 && myAge <= 89) ) { document.write("myAge is between 30 and 39 or myAge is between 80 and 89"); } </script> </body> </html> if (myAge >= 0 && myAge <= 10) { document.write("myAge is between 0 and 10"); } else if ( (myAge >= 30 && myAge <= 39) || (myAge >= 80 && myAge <= 89) ) { document.write("myAge is between 30 and 39 " + "or myAge is between 80 and 89"); } else { document.write("myAge is NOT between 0 and 10, " + "nor is it between 30 and 39, nor is it between 80 and 89"); }
55
b. Cu lnh r nhnh
C php switch (biu thc) { case nhn1: M c thc hin nu biu thc = nhn1 break case label2: M c thc hin nu biu thc = nhn2 break default: M c thc hin nu biu thc khc vi nhn1 v nhn2 } V d: <script type="text/javascript"> //You will receive a different greeting based //on what day it is. Note that Sunday=0, //Monday=1, Tuesday=2, etc. var d=new Date() theDay=d.getDay() switch (theDay) { case 5: document.write("Finally Friday") break case 6: document.write("Super Saturday") break case 0: document.write("Sleepy Sunday") break default: document.write("I'm looking forward to this weekend!") } </script>
c. Ton t iu kin
JavaScript cha ton t iu kin gn gi tr cho bin da vo mt vi iu kin C php variablename=(iu kin)?gi tr 1: gi tr 2 V d Greeting=(visitor=="PRES")?"Dear President ":"Dear "
d. Vong lp
while Cu lnh while s thc hin cc cu lnh n khi no iu kin ng while (iu kin) 56
{ M thc thi } V d: <html> <body> <script type="text/javascript"> i=0 while (i <= 5) { document.write("The number is " + i) document.write("<br>") i++ } </script> <p>Explanation:</p> <p><b>i</b> equal to 0.</p> <p>While <b>i</b> is less than , or equal to, 5, the loop will continue to run.</p> <p><b>i</b> will increase by 1 each time the loop runs.</p> </body> </html> do...while
Cu lnh while s thc hin cc cu lnh n khi no iu kin ng Do { M thc thi } while (iu kin) V d: <html> <body> <script type="text/javascript"> i=0 do { document.write("The number is " + i) document.write("<br>") i++ } while (i <= 5) </script> <p>Explanation:</p> <p><b>i</b> equal to 0.</p> <p>The loop will run</p> <p><b>i</b> will increase by 1 each time the loop runs.</p> <p>While <b>i</b> is less than , or equal to, 5, the loop will continue to run.</p> </body> </html> 57
for
Cu lnh for thc hin vi s ln cho trc for (gi tr khi to; iu kin; tng) { M thc thi } V d 1 <html> <body> <script type="text/javascript"> for (i = 0; i <= 5; i++) { document.write("The number is " + i) document.write("<br>") } </script> <p>Explanation:</p> <p>The for loop sets <b>i</b> equal to 0.</p> <p>As long as <b>i</b> is less than , or equal to, 5, the loop will continue to run.</p> <p><b>i</b> will increase by 1 each time the loop runs.</p> </body> </html> var loopCounter; for (loopCounter = 1; loopCounter <= 3; loopCounter++) <html> <body> <script language="JavaScript" type="text/javascript"> var degFahren = new Array(212, 32, -459.15); var degCent = new Array(); var loopCounter; for (loopCounter = 0; loopCounter <= 2; loopCounter++) { degCent[loopCounter] = 5/9 * (degFahren[loopCounter] - 32); } for (loopCounter = 2; loopCounter >= 0; loopCounter--) { document.write("Value " + loopCounter + " was " + degFahren[loopCounter] + " degrees Fahrenheit"); document.write(" which is " + degCent[loopCounter] + " degrees centigrade<br>"); } </script> </body> </html> Trong mt s trng hp ly gia tri cua cac phn t trong mang ma khng quan tm ti chi mang mang, chung ta co th su dung vong lp for vi cu phap nh sau: 58
for (ch s in tnmng) { Cu lnh } V d: var myArray = new Array("Paul","Paula","Pauline"); var loopCounter; for (loopCounter = 0; loopCounter < 3; loopCounter++) { document.write(myArray[loopCounter]); } var elementIndex; for (elementIndex in myArray) { document.write(myArray[elementIndex]); } Cac cu lnh break va continue <script language="JavaScript" type="text/javascript"> var degFahren = new Array(212, "string data", -459.67); var degCent = new Array(); var loopCounter; for (loopCounter = 0; loopCounter <= 2; loopCounter++) { if (isNaN(degFahren[loopCounter])) { alert("Data '" + degFahren[loopCounter] + "' at array index " + loopCounter + " is invalid"); break; } degCent[loopCounter] = 5/9 * (degFahren[loopCounter] - 32); } Hoc if (isNaN(degFahren[loopCounter])) { alert("Data '" + degFahren[loopCounter] + "' at array index " + loopCounter + " is invalid"); continue; }
to ra mt thc th ca Array, s dng t kha (new) var family_names=new Array(3) var family_names=new Array("Tove","Jani","Stale") tham chiu ti cc phn t ca mng, s dng tn mng v ch s mng. Ch s bt u bng 0. family_names[0]="Tove" family_names[1]="Jani" family_names[2]="Stale" mother=family_names[0] father=family_names[1] Cc thuc tnh ca mng v method c miu t di y. NN: Netscape, IE: Internet Explorer Properties (Cc thuc tnh) Cu phap: object.property_name Thuc tnh Constructor Length Prototype Phng thc Methods Cu phap: object.method_name() Phng thc concat() join(du phn cch) pop() push("phn t 1 ","phn t 2") Reverse() shift() slice(bt u[,kt thc]) sort() splice(ch s,s phn t[,el1,el2]) toSource() toString() unshift("phn t 1, phn t 1) valueOf() Miu t Ni hai hoc nhiu mng thnh mt mng mi t tt c cc phn t ca mng trong mt chui phn cch nhau bi du phn cch (du phy c s dng mc nh) Loi b v tr v phn t cui cng ca mng B sung mt hoc nhiu phn t vo cui mng v tr v gi tr length ca mng o ngc th t cc phn t trong mng Loi b v tr v gi tr u tin ca mng To ra mt mng mi t mt mng c Sp xp cc phn t ca mng B sung hoc loi b cc phn t ca mng Tr v chui biu din m ngun ca mng NN 4 3 4 4 3 4 4 3 4 IE 4 4 5.5 5.5 4 5.5 4 4 5.5 4 4 5.5 3 Miu t Cha hm to ra mu ban u ca i tng Tr v s phn t ca mng Cho php b sung thuc tnh vo mng NN 4 3 3 IE 4 4 4
4.0 6 Tr v chui biu din biu din s phn t ca 3 mng B sung mt hoc nhiu phn t n u mng 4 v tr v length mi Tr v gi tr gc ca mng 4
myArray[0] = "Bob"; myArray[1] = "Pete"; myArray[2] = "Paul"; document.write("myArray[0] = " + myArray[0] + "<br>"); document.write("myArray[2] = " + myArray[2] + "<br>"); document.write("myArray[1] = " + myArray[1] + "<br>"); myArray[1] = "Mike"; document.write("myArray[1] changed to " + myArray[1]); </script> </body> </html> Mang 2 chiu va nhiu chiu Ch s 0 1 2 0 Name1 Age1 Address1 1 Name2 Age2 Address2 2 Name3 Age3 Address3
<html> <body> <script language="JavaScript" type="text/javascript"> var personnel = new Array(); personnel[0] = new Array(); personnel[0][0] = "Name0"; personnel[0][1] = "Age0"; personnel[0][2] = "Address0"; personnel[1] = new Array(); personnel[1][0] = "Name1"; personnel[1][1] = "Age1"; personnel[1][2] = "Address1"; personnel[2] = new Array(); personnel[2][0] = "Name2"; personnel[2][1] = "Age2"; personnel[2][2] = "Address2"; document.write("Name : " + personnel[1][0] + "<br>"); document.write("Age : " + personnel[1][1] + "<br>"); document.write("Address : " + personnel[1][2]); </script> </body> </html>
Nu i tng boolean khng c gi tr khi to hoc bng 0, null, , false v NaN, gi tr khi to l false ngc li bng true. var b1=new Boolean() var b2=new Boolean(0) var b3=new Boolean(null) var b4=new Boolean("") var b5=new Boolean(false) var b6=new Boolean(NaN) var b1=new Boolean(true) var b2=new Boolean("true") var b3=new Boolean("false") var b4=new Boolean("Richard") Cc thuc tnh v method c miu t di y: Cac thuc tinh C php: itng.tnthuctnh Thuc tnh constructor prototype Cac phng thc C php: object.method_name() Method toString() Description NN IE Chuyn i gi tr Boolean sang string. Phng thc 4 4 ny c gi t ng bi Javascript bt k khi no i tng Boolean c s dng trong tnh hng yu cu mt chui Tr v gi tr nguyn thy (true hoc false) ca i 4 4 tng Boolean Miu t Cha hm to mu ca i tng Cho php b sung thuc tnh v phng thc cho i tng NN IE 4 4 3 4
valueOf()
V d: <html> <body> <script type="text/javascript"> var b1=new Boolean( 0) var b2=new Boolean(1) var b3=new Boolean("") var b4=new Boolean(null) var b5=new Boolean(NaN) var b6=new Boolean("false") document.write("0 is boolean "+ b1 +"<br />") document.write("1 is boolean "+ b2 +"<br />") document.write("An empty string is boolean "+ b3 + "<br />") document.write("null is boolean "+ b4+ "<br />") document.write("NaN is boolean "+ b5 +"<br />") document.write("The string 'false' is boolean "+ b6 +"<br />") </script> </body> </html> 62
Nu s dung Date(), JavaScript tao ra mt i tng cho ngay hin thi theo thi gian trn may cuc b var d=new Date("October 12, 1988 13:14:00") var d=new Date("October 12, 1988") var d=new Date(88,09,12,13,14,00) var d=new Date(88,09,12) var d=new Date(500) Cac thuc tinh Cu phap: object.property_name Thuc tnh constructor prototype Cac phng thc Phng thc Date() getDate() getDay() getMonth() getFullYear() getYear() getHours() getMinutes() getSeconds() Miu t Cha hm to mu ca i tng Cho php b sung thuc tnh cho i tng date NN IE 4 4 3 4
Cu phap: object.method_name() Miu t Tr v i tng Date Tr v ngy ca i tng Date ( t 1-31) Tr v ngy ca i tng Date (t 0-6. 0=Sunday, 1=Monday, vv.) Tr v gi tr thng ca i tng Date (t 0-11. 0=January, 1=February, vv.) Tr v gi tr nm ca i tng Date (bn ch s) Returns the year of a Date object (from 0-99). Use getFullYear instead !! Tr v gi tr Gi Tr v gi tr pht Tr v g tr giy NN 2 2 2 2 4 2 2 2 2 IE 3 3 3 3 4 3 3 3 3 63
parse() setDate() setFullYear() setHours() setMilliseconds() setMinutes() setMonth() setSeconds() setTime() setYear()
Tr v gi tr chui Thit lp gi tr ngy ca thng Thit lp gi tr nm Thit lp gi tr gi Thit lp gi tr milli giy Thit lp gi tr pht Thit lp gi tr thng Thit lp gi tr giy Thit lp gi tr milli giy Thit lp gi tr nm (00-99)
2 2 4 2 4 2 2 2 2 2
3 3 4 3 4 3 3 3 3 3
V d: <html> <body> <script type="text/javascript"> var d=new Date() var weekday=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday") var monthname=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") document.write(weekday[d.getDay()] + " ") document.write(d.getDate() + ". ") document.write(monthname[d.getMonth()] + " ") document.write(d.getFullYear()) </script> </body> </html> Kt qu: hin th ngy y
64
Cu phap: object.method_name() Phng thc abs(x) acos(x) asin(x) atan(x) atan2(y,x) ceil(x) cos(x) exp(x) floor(x) log(x) max(x,y) min(x,y) pow(x,y) random() round(x) sin(x) sqrt(x) tan(x) Miu t NN 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 IE 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
C php: object.method_name() Miu t Tr v c ch ln Tr v chui nhp nhy Tr v chui m Tr v k t ti v tr xc nh Tr v Unicode ca k t ti v tr xc nh Cng chui nh mu chui nh kch c chui Tr v gi tr k t trong bng m Unicode Tr v v tr xut hin u tin ca chui xc nh trong chui khc. Gi tr = -1 nu khng xut hin nh kiu ch nghing Tr v v tr xut hin u tin ca chui xc nh trong chui khc. Gi tr = -1 nu khng xut hin. Phng NN 2 2 2 2 4 4 2 2 4 2 2 2 IE 3 3 3 4 4 3 3 4 3 3 3
65
thc ny thc hin t phi qua tri Tr v chui nh mt hyperlink Tng t nh indexOf v lastIndexOf, nhng n tr v chui, hoc null thay v gi tr s replace() Thay th gi tr k t search() Tr v gi tr nguyn nu cha k t slice() Tr v chui cha ch s k t small() nh dng ch nh split() Chia chui thnh cc mng chui strike() nh dng gch ngang chui sub() Ch s di substr() Tr v cc k t xc nh. V d 14,7 tr v 7 k t t 14 k t (bt u t 0) Substring() Tr v cc k t xc nh. V d 7,14 tr v cc k t t 7 tr ln tr 14 (bt u t 0) sup() CH s trn toLowerCase() Chuyn i sang ch thng anchor("anchorname") Tr v neo toUpperCase() Chuyn i sang ch hoa link() match()
V d:
2 4 4 4 4 2 4 2 2 4 2 2 2 2 2
3 4 4 4 4 3 4 3 3 4 3 3 3 3 3
html> <body> <script type="text/javascript"> var str="W3Schools is great!" document.write(str.substr(2,6)) document.write("<br /><br />") document.write(str.substring(2,6)) </script> <p> Phng thc substr() tra v mt phn ca chui. Nu ghi l (2,6), chui tr v s bt u t k t th 2 n 6 </p> <p> The substring() method also returns a specified part of a string. If you specify (2,6) it returns all characters from the second character (start at 0) and up to, but not including, the sixth character. </p> </body> </html>
4.2.4. Ham
4.2.4.1. Khai bo hm
to ra mt hm cn phi nh ngha tn hm v cc i s ca hm:
function myfunction(cc i s) { Cu lnh }
66
i s l cc bin c s dng trong hm. Gi tr ca bin s c t gi tr khi c li gi hm. Bng cch t cc hm phn Head trong vn bn, m bo c rng tt c cc m trong hm c lp trc khi c li gi hm. Mt s hm tr gi tr v ti biu thc:
function result(a,b) { c=a+b return c }
4.2.4.2. Li gi hm
Mt hm khng c thc hin trc khi n c gi. C th gi hm cng vi cc i s hoc khng ty thuc vo cch khai bo hm: myfunction(cc i s) hoc myfunction() Cu lnh Return Cc hm s tr v gi tr phi s dng cu lnh return. Cu lnh return ch ra gi tr c tr v ni m hm c gi. function total(a,b) { result=a+b return result } sum=total(2,3) V d 1: <html> <head> <script type="text/javascript"> function myfunction() { alert("HELLO") } </script> </head> <body> <form> <input type="button" onclick="myfunction()" value="Call function"> </form> <p>By pressing the button, a function will be called. The function will alert a message.</p> </body> </html> V d 2: <html> 67
<head> <script type="text/javascript"> function myfunction(txt) { alert(txt) } </script> </head> <body> <form> <input type="button" onclick="myfunction('Hello')" value="Call function"> </form> <p>By pressing the button, a function with an argument will be called. The function will alert this argument.</p> </body> </html> V d 3: <html> <body> <script language="JavaScript" type="text/javascript"> function convertToCentigrade(degFahren) { var degCent; degCent = 5/9 * (degFahren - 32); return degCent; } var degFahren = new Array(212, 32, -459.67); var degCent = new Array(); var loopCounter; for (loopCounter = 0; loopCounter <= 2; loopCounter++) { degCent[loopCounter] = convertToCentigrade(degFahren[loopCounter]); } for (loopCounter = 2; loopCounter >= 0; loopCounter--) { document.write("Value " + loopCounter + " was " + degFahren[loopCounter] + " degrees Fahrenheit"); document.write(" which is " + degCent[loopCounter] + " degrees centigrade<br>"); } </script> </body> </html>
Cu phap: var myVariable = new tnitng(cc tham s la chn); Cc tham s la chn ph thuc vo khai bo cc Contructor V d: var myArray = new Array(); var myArray = new Array("Paul", "Paula", "Pauline"); var myDate = new Date(); var myDate = new Date("1 Jan 2000"); Trong kiu d liu nguyn thuy, bin lu tr gia tri thc s
var myNumber = 23; co nghia bin myNumber lu gia tri 23. Tuy nhin cac bin c gan ti cac i tng se khng lu tr gia tri thc s va chi tham chiu ti ia chi b nh cha d liu. var myArrayRef = new Array(0, 1, 2); var mySecondArrayRef = myArrayRef; myArrayRef[0] = 100; alert(mySecondArrayRef[0]); S dung cac thuc tinh cua i tng
myArray.length var myVariable = myArray.length; alert(myArray.length); myArray.length = 12; Goi phng thc cua i tng
Thc cht ra cac i tng String, Number va Boolean tng ng vi cac kiu d liu nguyn thuy string, number, Boolean. Vi du tao ra mt i tng String cha dong text."I'm a String object," var myString = new String("I'm a String object"); var lengthOfString = myString.length; Tra v s ki t trong i tng S dung kiu nguyn thuy: var mySecondString = "I'm a primitive string";
69
Trnh duyt c to bi cc i tng. Khi Jscript chy trn nn trnh duyt, chng ta cso th truy cp vo cc i tng ca trnh duyt chnh xc nh chng ta truy cp vo cc i tng ca Jscript. Trnh duyt a ra rt nhiu i tng, v d nh i tng window tng ng vi ca s ca trnh duyt. Chng ta tng s dng 2 phng thc ca i tng ny l alert() v prompt(). Cc i tng khc cng c hiu lc i vi trnh duyt chnh l bn thn trang, c biu din bi i tng vn bn (document object). Quay tr li cc phn trc chng ta s dng thuc tnh bgColor ca i tng document thay i mu nn ca trang web. Chng ta s dng phng thc write() ca i tng vit thng tin ra trang web. Rt nhiu i tng khc c s dng trong m HTML nh l i tng img ca th <img> Tp hp cc i tng m trnh duyt cung cp s dng cho Jscript c gi l Brower Object Model (BOM).
tnhv i tng ton cc. V d, hm alert() thc cht l phng thc ca i tng window. alert("Hello!"); hoc window.alert("Hello!"); C hai trnh duyt bao gm cc i tng document, navigator, history, screen, v location. i tng Document: biu din cc trang i tng navigator: lu thng tin v trnh duyt i tng screen: cha thng tin v kh nng hin th ca my trm i tng location: lu tr chie tit v v tr trang hin thi.
S dng i tng window Mt v d n gin s dng cc thuc tnh v phng thc ca i tng window l tc ngv vo thanh trang thi ca document thay i thng bo mc nhc ca thanh trang thi ca window, chng ta s dng thuc tnh defaultStatus property. window.defaultStatus = "Hello and Welcome"; hoc defaultStatus = "Hello and Welcome"; <html> <head> <script language="JavaScript" type="text/JavaScript"> window.defaultStatus = "Hello and Welcome"; </script> </head> </html> Trong mt s trng hp nu chng ta khai bo bin trng vi tn i tng hoc thuc tnh ca BOM khng xy ra li nhng khng nhn c kt qu chnh xc var defaultStatus; defaultStatus = "Welcome to my website"; Trong trng hp ny chng ta hoc s dng tn bin khc hoc c php chnh tc truy cp thuc tnh ca window var defaultStatus; window.defaultStatus = "Welcome to my website";
71
document.bgColor = "white"; break; case 8: case 15: case 16: document.bgColor = "blue"; break; case 24: case 32: document.bgColor = "skyblue"; break; default: document.bgColor = "white"; } document.write("Your screen supports " + window.screen.colorDepth + "bit color"); </script> </body> </html> Gia tri thuc tinh colorDepth tra v cac gia tri 1, 4, 8. 15, 16, 24, 32. Chung biu din s cac bit c gan cho mi pixel trn man hinh. b. Mang cac anh - The images Array <img ALT="USA" name=myImage src="usa.gif"> Mi anh trong trang co mt i tng img c tao ra. Cac i tng c lu trong mang images. Mang nay la thuc tinh cua document. Anh u tin trong trang c truy vn thng qua images[0]. Co th gan bin tham chiu ti i tng img trong mang images. var myImage2 = document.images[1]; Chung ta co th truy cp cac i tng img trong mang images bng tn. Vi du, i c bi the <img>, co tn la myImage, co th c truy cp trong thuc tinh mang anh cua i tng document nh sau: document.images["myImage"] Bi vi thuc tinh document.images la mt mang, no co cac thuc tinh t cua i tng mang Jscritp nh thuc tinh length. Vi du, nu chung ta mun bit co bao nhiu anh trong trang, chung ta co th s dung document.images.length. <html> <body> <img name=img1 src="" border=0 width=200 height=150> <script language="JavaScript" type="text/JavaScript"> var myImages = new Array("usa.gif","canada.gif","jamaica.gif","mexico.gif"); var imgIndex = prompt("Enter a number from 0 to 3",""); document.images["img1"].src = myImages[imgIndex]; </script> </body> </html> c.Mang links 73
i vi mi the hyperlink <A> inh nghia vi thuc tinh href, trinh duyt tao ra mt i tng A. Thuc tinh quan trong nht cua i tng A o la href, tng ng vi thuc tinh cua the. S dung thuc tinh nay, chung ta co th tim cac im lin kt u va co th thay i iu nay thp chi sau khi trang o c nap Tp hp cac i tng trong trang cha bn trong mang links[], tng t nh i tng img trong mang images[] d. Code kt ni ti cac s kin trang Web Cac s kin xut hin khi co mt hanh ng nao xay ra. Vi du nh ngi s dung bm vao trang, siu lin kt hoc di chuyn con tro ti mt dong text nao o gy ra cac s kin. e. X ly cac s kin nh cac thuc tinh: <html> <body> <A href="somepage.htm" name="linkSomePage"> Click Me </A> </body> </html> <A href="somepage.htm" name="linkSomePage" onclick="alert('You Clicked?')"> Click Me </A> <html> <body> <script language="JavaScript"> function linkSomePage_onclick() { alert('You Clicked?'); return true; } </script> <A href="somepage.htm" name="linkSomePage" onclick="return linkSomePage_onclick()"> Click Me </A> </body> </html> Mt vai s kin khng lin kt trc tip ti hanh ng cua ngi s dung. Vi du, i tng window co s kin load, xay ra khi trang c nao va mt s du unload xay ra khi trang unload (co th chuyn ti mt trang khac hoc trinh duyt bi ong lai). Cac s kin nay nm trong tag <body>.
<body language=JavaScript onload="myOnLoadfunction()" onunload="myOnUnloadFunction()">
f. X ly cac s kin nh cac thuc tinh Theo cch thc kt ni ti cc s kin, chng ta cn phi nh ngha hm s c thc hin khi s kin xut hin. Sau , thit lp thuc tnh x l x kin ca i tng n hm n ngha. 74
V d minh ha: <html> <body> <script language="JavaScript"> function linkSomePage_onclick() { alert('This link is going nowhere'); return false; } </script> <A href="somepage.htm" name="linkSomePage"> Click Me </A><P> <A href="otherpage.htm" name="linkOtherPage"> Click Me </A><p> <script language="JavaScript" type="text/JavaScript"> window.document.links[0].onclick = linkSomePage_onclick; </script> </body> </html> Hin th nh ngu nhin khi mt trang c np <html> <head> <script language="JavaScript"> var myImages = new Array("usa.gif","canada.gif","jamaica.gif","mexico.gif"); function changeImg(imgNumber) { var imgClicked = document.images[imgNumber]; var newImgNumber = Math.round(Math.random() * 3); while (imgClicked.src.indexOf(myImages[newImgNumber]) != -1) { newImgNumber = Math.round(Math.random() * 3); } imgClicked.src = myImages[newImgNumber]; return false; } </script> </head> <body> <A href="" name="linkImg1" onclick="return changeImg(0)"> <img name=img0 SRC="usa.gif" border=0 > </A> <A href="" name="linkImg2" onclick="return changeImg(1)"> <img name="img0" SRC="mexico.gif" border="0" > </A> </body> </html>
Cac Form cung cp cach thc nhom cac phn t tng tac HTML vi nhau vi cung mt muc ich. Vi du, mt form cha cac phn t cho phep ngi s dung nhp d liu vi du nh ng ki hom th min phi. Cu phap: <form cac thuc tinh > Cac the (cac iu khin nh input, button) </form> Thuc tnh action URL Gi tr Miu t DTD
Cc thuc tnh la chn Thuc tnh accept accept-charset enctype method Gi tr Hin th kiu ni dung charset_list mimetype get post Miu t DTD STF Danh sch tch bit du , ca tp k t t STF d liu form. Gi tr mc nh l "unknown" Kiu mime s dng m ha ni dung ca form Phng thc HTTP gi d liu n URL hot ng. Mc nh l get method="get": Phng thc ny gi ni dung form trong URL: URL? name=value&name=value. Ch : nu gi tr form khng phi l k t ASSCII hoc vt qu 100 k t, cn phi dng method="post". method="post": PHng thc ny gi ni dng trong phn body ca yu cu. Ch : hu ht cc trnh duyt khng nh du cc yu cu post Xc nh tn duy nht ca form ch m URL. _blank m URL trong ca s mi _self m URL ngay trong cng frame _parent m trong frameset cha _top m trong body ca ca s STF STF
name target
TF TF
Cc thuc tnh chun id, class, title, style, dir, lang, xml:lang V d: <form name="myForm"> </form> Mang cac form 76
<html> <head> <script language="JavaScript" type="text/javascript"> function window_onload() { var numberForms = document.forms.length; var formIndex; for (formIndex = 0; formIndex < numberForms; formIndex++) { alert(document.forms[formIndex].name); } } </script> </head> <body language=JavaScript type="text/javascript" onload="window_onload()"> <form name="form1"> <p>This is inside form1</p> </form> <form name="form2"> <p>This is inside form2</p> </form> <form name="form3"> <p>This is inside form3</p> </form> </body> </html> Cac thuc tinh va phng thc khac cua form Co th truy cp vao cac iu khin trong form bng thuc tinh elements[] cua i tng form. Mang nay ging nh thuc tinh mang forms[] cua i tng document. Mang elements[] chua tt ca cac i tng tng ng vi cac phn t tng tac HTML bn trong form, ngoai tr s kin <input type=image>. Cac thuc tinh rt co ich cho vic lp cac phn t trong mu. Vi du, co th lp mi phn t kim tra tinh hiu lc cua d liu nhp vao trc khi gi i. Thuc tinh elements[] cua i tng co thuc tinh length cho phep bit c co bao nhiu phn t trong form. i tng form cung co thuc tinh length cho phep bit c s cac phn t trong form. document.myForm.length tng ng document.myForm.elements.length. Khi submit d liu ti server, chung ta thng s dung button submit, tuy nhin i tng Form co mt method submit(), thc hin gn ging nh phim submit. S khac nhau o la x ly s kin onsubmit khng c goi khi s dung phng thc submit() cua i tng method() Cac phn t HTML trong Form Hu ht cac phn t c tao ra u s dung tag <input>. Mt trong thuc tinh quan trong cua input o la thuc tinh type. Thuc tinh nay xac inh phn t se la gi. Cac phng thc va thuc tinh chung 77
Thuc tinh name: s dung gia tri thuc tinh nay tham chiu ti phn t trong script. Thuc tinh value: tra v gia tri cua phn t. Thuc tinh form: tra v gia tri cua form ma phn t nm bn trong. Thuc tinh type: tra v thuc tinh cua phn t Phng thc focus() va blur(): Nu co mt phn t c focus, bt ki go phim bt ky se c gi ti phn t nay. Trong trng hp focus vao phim nu go phim enter tng ng vi x ly s kin onclick. Ngi s dung co th thit lp focus bng cach s dung click vao hoc s dung phim tab la chon. Tuy nhin, ngi lp trinh co th quyt inh phn t nao c focus bng cach s dung phng thc focus() cua i tng element. Vi du, nu chung ta co mt text box cho ngi s dung a vao tui. Trong trng hp ngi s dung a vao gia tri la ki t, chung ta co th yu cu nhp lai. Phng thc blur() i ngc vi phng thc focus(). i vi cac phng thc focus() va blur(), tt ca cac i tng cua phn t co x ly s kin onfocus va onblur. Cac phn t Button Cu phap <input type=, .> <input type="button" name="myButton" value="Click Me"> <html> <head> <script language=JavaScript> var numberOfClicks = 0; function myButton_onclick() { numberOfClicks++; window.document.form1.myButton.value = 'Button clicked ' + numberOfClicks + ' times'; } </script> </head> <body> <form name=form1> <input type='button' name='myButton' value='Button clicked 0 times' onclick="myButton_onclick()"> </form> </body> </html> onmouseup v onmousedown <html> <head> <script language=JavaScript> function myButton_onmouseup() { document.form1.myButton.value = "Mouse Goes Up" } function myButton_onmousedown() 78
{ document.form1.myButton.value = "Mouse Goes Down" } </script> </head> <body> <form name=form1> <input type='button' name='myButton' value=' Mouse Goes Up ' onmouseup="myButton_onmouseup()" onmousedown="myButton_onmousedown()"> </form> </body> </html> Cac phim Submit va Reset
<input type="submit" value="Submit" name="submit1"> <input type="reset" value="Reset" name="reset1">
Khi click vao phim submit, d liu t form ma phim nm cung se t ng gi ti sever, ma khng cn bt ky mt script nao ca. Tng t cung nh vy khi click vao phim reset, tt ca cac phn t trong form se bi xoa bo va hin thi gia tri mc inh. Phim submit va reset tng ng vi i tng Submit va Reset, co thuc tinh, phng thc, va s kin ging nh i tng Button Phn t Text Cu phap <input type=text .> <input type="text" name="myTextBox" size=10 maxlength=15 value="Hello World"> Phng thc select(), parseINt() hoc parseFloat() hoc Number() S kin cua object Text: onchange, onselect, onkeydown, onkeypress, va onkeyup
<input type="text" name=txtReadonly value="Look but don't change" onfocus="window.document.form1.txtReadonly.blur()" READONLY=true>
V d form n gin kim tra d liu u vo <html> <head> <script language=JavaScript> function butCheckForm_onclick() { var myForm = document.form1; if (myForm.txtAge.value == "" || myForm.txtName.value == "") { alert("Please complete all the form"); if (myForm.txtName.value == "") { myForm.txtName.focus(); } else { myForm.txtAge.focus(); } 79
} else { alert("Thanks for completing the form " + myForm.txtName.value); } } function txtAge_onblur() { var txtAge = document.form1.txtAge; if (isNaN(txtAge.value) == true) { alert("Please enter a valid age"); txtAge.focus(); txtAge.select(); } } function txtName_onchange() { window.status = "Hi " + document.form1.txtName.value; } </script> </head> <body> <form name=form1> Please enter the following details: <p> Name: <br> <input type="text" name=txtName onchange="txtName_onchange()"> <br> Age: <br> <input type="text" name=txtAge onblur="txtAge_onblur()" size=3 maxlength=3> <br> <input type="button" value="Check Details" name=butCheckForm onclick="butCheckForm_onclick()"> </form> </body> </html> Hp text mtkhu <input name=password1 type=password> Hp text n <input type="hidden" name=myHiddenElement> Phn t textarea <textarea name=myTextArea cols=40 rows=20>Hello World Line 2 </textarea> Theo di d kin 80
tr gip minh ha cc s kin nh phm ln, xung, bm phm bt k.. lm vic nh th no, v d di y minh ha iu <html> <head> <script language=JavaScript> function DisplayEvent(eventName) { var myMessage = window.document.form1.textarea2.value; myMessage = myMessage + eventName; window.document.form1.textarea2.value = myMessage; } </script> </head> <body> <form name=form1> <textarea rows=15 cols=40 name=textarea1 onchange="DisplayEvent('onchange\n');" onkeydown="DisplayEvent('onkeydown\n');" onkeypress="DisplayEvent('onkeypress\n');" onkeyup="DisplayEvent('onkeyup\n\n');"></textarea> <textarea rows=15 cols=40 name=textarea2></textarea> <br><br> <input type="button" value="Clear Event TextArea" name=button1 onclick="window.document.form1.textarea2.value=''"> </form> </body> </html> Checkboxes v Phm Radio <input type="checkbox" name=chkDVD checked value="DVD"> <input type="radio" name=radCPUSpeed checked value="1 GHz"> For example, to create a group of three radio buttons, our HTML would be <input type="radio" name=radCPUSpeed checked value="800 MHz"> <input type="radio" name=radCPUSpeed value="1 GHz"> <input type="radio" name=radCPUSpeed value="1.5 GHz"> V d: <html> <head> <script language=JavaScript> var radCpuSpeedIndex = 0; function radCPUSpeed_onclick(radIndex) { var returnValue = true; if (radIndex == 1) { returnValue = false; alert("Sorry that processor speed is currently unavailable"); // Next line works around a bug in IE that doesn't cancel the 81
// Default action properly document.form1.radCPUSpeed[radCpuSpeedIndex].checked = true; } else { radCpuSpeedIndex = radIndex; } return returnValue; } function butCheck_onclick() { var controlIndex; var element; var numberOfControls = document.form1.length; var compSpec = "Your chosen processor speed is "; compSpec = compSpec + document.form1.radCPUSpeed[radCpuSpeedIndex].value; compSpec = compSpec + "\nWith the following additional components\n"; for (controlIndex = 0; controlIndex < numberOfControls; controlIndex++) { element = document.form1[controlIndex]; if (element.type == "checkbox") { if (element.checked == true) { compSpec = compSpec + element.value + "\n"; } } } alert(compSpec); } </script> </head> <body> <form name=form1> <p> Tick all of the components you want included on your computer <br><br> <table> <tr> <td>DVD-ROM</td> <td><input type="checkbox" name="chkDVD" value="DVD-ROM"></td> </tr> <tr> <td>CD-ROM</td> <td><input type="checkbox" name="chkCD" value="CD-ROM"></td> </tr> <tr> <td>Zip Drive</td> <td><input type="checkbox" name="chkZip" value="ZIP Drive"></td> </tr> </table> <p> Select the processor speed you require <table> <tr> <td><input type="radio" name="radCPUSpeed" checked onclick="return radCPUSpeed_onclick(0)" value="3.8 GHz"></td> 82
<td>3.8 GHz</td> <td><input type="radio" name="radCPUSpeed" onclick="return radCPUSpeed_onclick(1)" value="4.8 GHz"></td> <td>4.8 GHz</td> <td><input type="radio" name="radCPUSpeed" onclick="return radCPUSpeed_onclick(2)" value="6 Ghz"></td> <td>6 GHz</td> </tr> </table> </p> <input type="button" value="Check Form" name="butCheck" onclick="return butCheck_onclick()"> </form> </body> </html> Phn t select <select> and </select> tags. <select name=theDay size=5> <option value=0 selected>Monday <option value=1>Tuesday <option value=2>Wednesday <option value=3>Thursday <option value=4>Friday <option value=5>Saturday <option value=6>Sunday </select> Th <option> Monday cha t c la chn, to ra la chn mc nh khi trang c np. Gi tr ca cc option c nh ngha bi s. Nu mun to thnh hp danh sch ri xung, chng ta cn thay i thuc tnh size trong th <select> thnh 1: <select name=theDay size=5> Nu mun ngi dng la chn nhiu hn mt gi tr trong danh sch ti mt thi im, cn b sung thm thuc tnh multiple. Th <select> to ra i tng Select. i tng ny c thuc tnh mng options[], v mng ny tao ra cc i tng Option, mi mt phn t <option> trong phn t <select> kt hp vi i tng Select. V d: v d trc, nu phn t <select> ch trong form (tn form l theform) th: Document.theform.theday.options[0] tham chiu ti gi tr u tin (Monday) i tng Option c index, text v thuc tnh gi tr. Thuc tnh index tr v v tr ca option trong mng options[]. Thuc tinh text c hin th trong danh sch, cn thuc tnh value xc nh gi tr cho option. V d var theDayElement = window.document.form1.theDay; document.write("There are " + theDayElement.length + "options<br>"); var optionCounter; for (optionCounter = 0; optionCounter < theDayElement.length; optionCounter++) { document.write("Option text is " + theDayElement.options[optionCounter].text) document.write(" and its value is "); 83
document.write(theDayElement.options[optionCounter].value); document.write("<br>") } B sung mi option - To ra i tng mi Option - B sung vo mng options[] phn t option var myNewOption = new Option("TheText","TheValue"); document.theForm.theSelectObject.options[0] = myNewOption; Loi b option: gn bng gi tr null document.theForm.theSelectObject.options[0] = null; V d <html> <head> <script language=JavaScript> function butRemoveWed_onclick() { if (document.form1.theDay.options[2].text == "Wednesday") { document.form1.theDay.options[2] = null; } else { alert('There is no Wednesday here!'); } } function butAddWed_onclick() { if (document.form1.theDay.options[2].text != "Wednesday") { var indexCounter; var days = document.form1.theDay; var lastoption = new Option(); days.options[6] = lastoption; for (indexCounter = 6;indexCounter > 2; indexCounter--) { days.options[indexCounter].text = days.options[indexCounter - 1].text; days.options[indexCounter].value = days.options[indexCounter - 1].value; } var option = new Option("Wednesday",2); days.options[2] = option; } else { alert('Do you want to have TWO Wednesdays?????'); } } </script> </head> <body> <form name=form1> 84
<select name=theDay size=5> <option value=0 selected>Monday <option value=1>Tuesday <option value=2>Wednesday <option value=3>Thursday <option value=4>Friday <option value=5>Saturday <option value=6>Sunday </select> <br> <input type="button" value="Remove Wednesday" name=butRemoveWed onclick="butRemoveWed_onclick()"> <input type="button" value="Add Wednesday" name=butAddWed onclick="butAddWed_onclick()"> <br> </form> </body> </html> B sung Option mi trong IE Trong IE< c rt nhiu thuc tnh b sung, phng thc v s kin c kt hp vi i tng. Mng options[] c phng thc add() v remove() cho php b sung v loi b option. Trc khi b sung, cn phi to trc bng cch s dng ton t new PHng thc add() c 2 tham s: gi tr v th t V d function butAddWed_onclick() { if (document.form1.theDay.options[2].text != "Wednesday") { var option = new Option("Wednesday",2); document.form1.theDay.options.add(option,2); } else { alert('Do you want to have TWO Wednesdays?????'); } } V d s dng phng thc remove() function butRemoveWed_onclick() { if (document.form1.theDay.options[2].text == "Wednesday") { document.form1.theDay.options.remove(2); } else { alert('There is no Wednesday here!'); } } Cc s kin phn t la chn 85
Cc phn t la Select c 3 s kin: onblur, onfocus v onchange. V d <html> <head> <script language=JavaScript> function writeOptions(startNumber, endNumber) { var optionCounter; for (optionCounter = startNumber; optionCounter <= endNumber; optionCounter++) { document.write('<option value=' + optionCounter + '>' + optionCounter); } } function writeMonthOptions() { var theMonth; var monthCounter; var theDate = new Date(1); for (monthCounter = 0; monthCounter < 12; monthCounter++) { theDate.setMonth(monthCounter); theMonth = theDate.toString(); theMonth = theMonth.substr(4,3); document.write('<option value=' + theMonth + '>' + theMonth); } } function recalcDateDiff() { var myForm = document.form1; var firstDay = myForm.firstDay.options[myForm.firstDay.selectedIndex].value; var secondDay = myForm.secondDay.options[myForm.secondDay.selectedIndex].value; var firstMonth = myForm.firstMonth.options[myForm.firstMonth.selectedIndex].value; var secondMonth = myForm.secondMonth.options[myForm.secondMonth.selectedIndex].value; var firstYear = myForm.firstYear.options[myForm.firstYear.selectedIndex].value; var secondYear = myForm.secondYear.options[myForm.secondYear.selectedIndex].value; var firstDate = new Date(firstDay + " " + firstMonth + " " + firstYear); var secondDate = new Date(secondDay + " " + secondMonth + " " + secondYear); var daysDiff = (secondDate.valueOf() - firstDate.valueOf()); daysDiff = Math.floor(Math.abs((((daysDiff / 1000) / 60) / 60) / 24)); myForm.txtDays.value = daysDiff; return true; } function window_onload() { var theForm = document.form1; var nowDate = new Date(); 86
theForm.firstDay.options[nowDate.getDate() - 1].selected = true; theForm.secondDay.options[nowDate.getDate() - 1].selected = true; theForm.firstMonth.options[nowDate.getMonth()].selected = true; theForm.secondMonth.options[nowDate.getMonth()].selected = true; theForm.firstYear.options[nowDate.getFullYear()- 1970].selected = true; theForm.secondYear.options[nowDate.getFullYear() - 1970].selected = true; } </script> </head> <body language=JavaScript onload="return window_onload()"> <form name=form1> <p> First Date<br> <select name=firstDay size=1 onchange="return recalcDateDiff()"> <script language=JavaScript> writeOptions(1,31); </script> </select> <select name=firstMonth size=1 onchange="return recalcDateDiff()"> <script language=JavaScript> writeMonthOptions(); </script> </select> <select name=firstYear size=1 onchange="return recalcDateDiff()"> <script language=JavaScript> writeOptions(1970,2010); </script> </select> </p> <p> Second Date<br> <select name=secondDay size=1 onchange="return recalcDateDiff()"> <script language=JavaScript> writeOptions(1,31); </script> </select> <select name=secondMonth size=1 onchange="return recalcDateDiff()"> <script language=JavaScript> writeMonthOptions(); </script> </select> <select name=secondYear size=1 onchange="return recalcDateDiff()"> <script language=JavaScript> writeOptions(1970,2010); </script> </select> </p> Total difference in days <input type="text" name=txtDays value=0 readonly> <br> </form> </body> 87
</html>
88
Trong v d trn th dng s 6 v dng s 8 dng khai bo bt u v kt thc on script. Dng 7 l ni dung ca script. Lnh Response.Write("Hello World") gi d liu v pha my trm. Dng 7 s gi ti browser ch Hello World. Kt qu khi duyt trang web ny a ch
89
Kt qu:
5.2.2. Ch thch
Ch thch l mt phn khng th thiu trong ngn ng, n lm cho m lnh tr nn d c i vi ngi lp trnh. Ch thch trong ASP c t sau du nhy n (') hoc sau chui Rem. V d: ta s thy hai v tr ch thch dng 7 v 8
90
5.2.5. Cc ton t
Cc ton t trong VBScript gn ging cc ton t trong ngn ng lp trnh Turbo Pascal. Ch c mt s ton t khc bit c th hin trong bng sau
TON T BIU DIN V D KT QU V D
M Chia ly phn nguyn Cng chui Gn gi tr cho bin Gn gi tr cho bin kiu i tng
2^3 8\3 "Hello" & "World" a=5 set Conn = Server.CreateObject ("ADODB.Connection")
b. Khai bo bin
Trong VBScript cc bin v hng u khng cn phi quy nh kiu, kiu ca cc bin ny l Variant v n c th gn cho bt k mt kiu no. Vic khai bo bin bt u bng t kha Dim. C php: 91
Ch : Vic khai bo bin trong VBScript l khng bt buc. Nu ta s dng mt bin cha c khai bo th coi nh bin mi s c t ng to mi. bt buc khai bo bin trc khi s dng ta s dng la chn Option Explicit.
c. Khai bo mng
khai bo mt bin mng c ta s dng lnh Dim vi c php: Dim <Tn bin mng>(n) Khi mng c khai bo vi cc phn t c nh s t 0 n n. Ta c th truy cp vo cc phn t ca mng bng cch: <tn mng>(ch s) V d:
Ta cng c th khai bo mt mng cha xc nh s phn t bng cch b ch s n trong khai bo thng thng. Khi mun dng mng tht s ta phi khai bo li bng lnh ReDim. V d:
5.3. Cc cu lnh
5.3.1. Lnh r nhnh
a. Lnh r nhnh dng khuyt
92
b. Lnh r nhnh y
5.3.2. Lnh lp xc nh
a. Lp vi s ln nh trc
Dng 1:
Dng 2
V d M lnh LAP.ASP
Kt qu
93
M lnh LAP1.ASP
Kt qu
M lnh LAP2.ASP
Kt qu
94
M lnh LAP3.ASP
Kt qu
c. Lnh lp Do...Loop While/Until (Thc hin lnh trc khi kim tra iu kin)
95
5.4 Hm v th tc
5.4.1. Hm
a. nh ngha mt hm:
- Public hoc Private: Kiu ca hm c th loi b nu khng cn thit. - Exit Funtion: Thot khi hm m khng thc hin tip phn sau ca lnh ny. - Cc tham s nu c phi c t cch nhau bi du phy (,) v khng khai bo kiu. Khi gi hm cc tham s ny phi c truyn vo s lng v theo ng th t khai bo. - Tr v gi tr cho hm bng cch: <tn hm> = <gi tr>
b. Gi mt hm c nh ngha:
C php <tn hm>[(Cc tham s nu c)] Hoc Call <tn hm>[(Cc tham s nu c)] Ta c th gn gi tr mt hm cho mt bin bng cch <Tn bin> = <Tn hm>[(Cc tham s nu c)]
5.4.2. Th tc
a. nh ngha th tc:
- Public hoc Private: Kiu ca th tc c th loi b nu khng cn thit. - Exit Sub: Thot khi th tc m khng thc hin tip phn sau ca lnh ny. - Cc tham s nu c phi c t cch nhau bi du phy (,) v khng khai bo kiu. Khi gi th tc cc tham s ny phi c truyn vo s lng v theo ng th t khai bo.
b. Gi mt th tc c nh ngha:
C php <tn th tc>[(Cc tham s nu c)] hoc Call <tn th tc>[(Cc tham s nu c)]
HM TON HC
Abs(x) |x| Abs(-1) 1 97
Sqr(x) CBool(Bin) CByte(Bin) CCur(Bin) CDate(Bin) CInt(Bin) CStr(Bin) Date() Now() Second(BTthi gian) Minute(BTthi gian) Hour(BT thi gian) Day(BT thi gian) WeekDay((BTThiGian) Month(BTThiGian) Year(BT thi gian) WeekDayName(n) MonthName(n) IsDate(Biu thc) IsEmpty(Biu thc) IsNull(Biu thc) IsNumeric(Biuthc) IsObject(Biu thc) LCase(Chui) UCase(Chui) Left(Chui, n) Right(Chui, n) Len(Chui) LTrim(Chui) RTrim(Chui) Trim(Chui) Asc(k t)
x HM CHUYN I KIU
Sqr(4)
Chuyn kiu bin thnh kiu bool Chuyn kiu bin thnh kiu byte Chuyn kiu bin thnh kiu Currency Chuyn kiu bin thnh kiu ngy thng Chuyn kiu bin thnh kiu nguyn Chuyn kiu bin thnh kiu chui
HM THI GIAN
Ngy thng nm hin ti Thi im hin ti Ly giy ca BTThiGian Ly pht ca BTThiGian Ly gi ca BTThiGian Ly ngy ca BTThiGian Ngy trong tun ca BTThiGian Ly thng ca BTThiGian Ly nm ca BTThiGian Tn ca ngy th n trong tun Tn ca thng th n trong nm
HM KIM TRA
C phi l biu thc ngy khng Biu thc c rng khng? BT rng l BT cha cha gi tr Biu thc c gi tr l NULL khng? Biu thc c l s khng Biu thc c l i tng khng?
HM X L CHUI
Chuyn chui thnh ch thng Chuyn chui thnh ch hoa Ly n k t bn tri chui Ly n k t bn phi chui di ca chui Ct ht k t trng bn tri chui Ct ht k t trng bn phi chui Ct ht k t trng hai u chui
MT S HM KHC
LCase("heLLo") UCase("heLLo") Left("heLLo",2) Right("heLLo",2) Len ("heLLo",2) LTrim(" heLLo ") RTrim(" heLLo ") Trim(" heLLo ") ASC("A")
M k t ASCII ca bin
Chr(n)
K t c m ASCII l n
Chr(65)
"A"
Nu s dng INCLUDE VIRTUAL th th mc cha file cn chn vo phi l mt th mc o trn server v phn m rng ca file phi l .INC, cn nu dng INCLUDE FILE th phi ch ra ng dn vt l ca file cn chn.
99
5.5.1. Cc s kin
a. S kin Application_OnStart
S kin Application_OnStart pht sinh khi ngi dng u tin gi yu cu n ng dng web. Application_OnStart ch xy ra mt ln i vi ngi u tin. Mun s kin ny xy ra li ch c cch khi ng li IIS. Vit lnh p ng s kin ny thng dng khi to gi tr cc bin mc ton cc v hiu lc vi mi ngi dng chng hn nh: s ngi gh thm trang web, ng dn n CSDL,...
b. S kin Session_OnStart
Pht sinh khi ngi dng yu cu trang u tin trong ng dng t trnh duyt. Ta s dng s kin ny khi to cc ga tr bin, cc i tng cn thit. S kin ny c th xy ra nhiu ln vi mi ngi dng
c. S kin Session_OnEnd
S kin ny pht sinh khi phin lm vic ca ngi dng chm dt ngha l n ht hn hoc ngi dng ng ca s trnh duyt li. Trong s kin ny ta thng vit cc th tc xa cc bin nh hoc c th lu li cc trng thi thng tin nu cn. Tng t nh s kin Session_OnStart, s kin Session_OnEnd cng c th xy ra nhiu ln vi mi ngi dng.
d. S kin Applicaton_OnEnd
S kin ny pht sinh khi ng dng ASP c ti xung bng MMC (Microsoft Management Console), hoc khi ng dng b ngng mt cch v thc bi mt l do no (dch v web b ngng trn web server) Tng t nh Application_OnStart, Application_OnEnd ch pht sinh mt ln duy nht, cc m lnh c vit x l s kin ny s c gi sau cng. Ta thng dng s kin ny lu li cc gi tr cn thit ngay trc khi dch v web ngng lm vic.
100
Nu ta s dng trnh son tho VisualInterDev trong b VisualStudio th vic thm cc i tng vo Global.asa rt n gin, thao tc cn li ch l ko-th. Ta cn lu rng cc on m trn khng t trong <%...%> - Scope l phm vi ca bin: l Application hoc Session - ID: Tn ta t cho i tng - ProgID hoc ClassID l nh danh ca i tng COM ta mun chn. V d v chn mt i tng
hoc ta c th
V thuc tnh Item l thuc tnh mc nh ca tp hp nn ta c th b qua thuc tnh ny cho n gin trong khi vit nh sau:
102
V d
Chi tit v i tng ny s c cp trong cc bi sau. Ta c th tam hiu thng qua v d sau y: 5.6.2.4. V d
Trong v d ny ta lm mt form cho php ngi s dng nhp thng tin v H v tn ri gi v trnh x l theo phng thc GET, trnh x l s hin mt cu thng bo cho ngi . FORMGET.HTM 103
Sau khi nhp d liu trn trnh duyt v nhn Gi i ch chui trn URL
V d:
5.6.3.4. V d
Trong v d ny ta lm li v d trong phn 2.4 ca bi ny nhng c khc l d liu trong form c gi i theo phng thc POST. FORMPOST.HTM
104
Sau khi nhp d liu trn trnh duyt v nhn Gi i chui trn URL khng c d liu ca form
105
Cha cc gi tr c gi ln t cc yu cu HTTP Get (hiu n gin l t cc URL) Cha cc gi tr trong form c gi n (vi iu kin form phi s dng phng php POST Cha cc thng tin ca cc cookies c gi trong yu cu HTTP Cha danh sch cc gi tr ca cc bin mi trng c xc nh trc
a. Tp hp QueryString
Tp hp QueryString cho php ta ly thng tin t my khch gi n, c th l mt form c gi theo phng php GET hoc d liu c gn vi URL khi trang web c yu cu. 106
a c cc bin vo chng trnh, sau phn cui ca a ch thng thng ta thm du (?) ri sau n tng cp <tn bin> = <gi tr> c phn cch nhau bi du (&).
V d: truyn ba bin a, b, c c gi tr ln lt l 1, 2, 1 v trang PTBAC2.ASP trn server th chui URL khi nh sau.
http://localhost/ptbac2.asp?a=1&b=2&c=1 Tp hp ny c tnh nng tng i hn ch v s lng cc k t c th gi c trong tiu v trong yu cu HTTP. Gii hn d liu ny khong di 2000 k t. Nu s lng k t vt qu s lng gii hn th chng s khng c s dng mc d script vn chy. V d: ta quay li v d Gii phng trnh bc 2 bi trc. Cc bin a, b, c c ly vo trong chng trnh bng cch ly t QueryString.
b. Tp hp Form
Tp hp ny cho php nhn thng tin u vo t cc form c gi n thng qua phng thc POST. Phng thc ny c u im hn phng thc GET ch l c th truyn c lng d liu ln. * V d: Ta c th sa li chng trnh gii phng trnh bc 2 trong phn trn cho php ngi s dng nhp d liu t trang PTBAC2.HTM v gi d liu sang trang GIAIPTB2.ASP x l nh sau: - M lnh PTBAC2.HTM
- Kt qu PTBAC2.HTM
107
- Kt qu
c. Tp hp Cookies
Cookies l nhng mu thng tin nh c lu trn my trm thng thng cc Cookies c s dng xc nh cc ngi s dng truy cp trang web. Chi tit v Cookies s c cp trong mt phn ring v Cookies.
d. Tp hp ServerVariables
ServerVariables l mt tp cc gi tr ca HTTP header c gi t client cng vi gi tr mt s bin mi trng ca webserver. Cc thnh phn trong tp ny u l gi tr ch c.
108
5.7.3.1. Cc tp hp
i tng Response chi c duy nht mt tp hp l tp hp Cookies. Tp hp ny cho php chng ta to nn cc Cookies trn my trm. Chi tit v Cookies s c cp trong mt phn ring v Cookies.
Charset(charset_name) ContentType="Kiu"
Expires = S pht
- iu khin thng tin c x l trc khi gi v cho client + Nu c t l True th tt c cc script trn trang phi c chy trc khi gi kt qu v client + Nu c t l False (gi tr mc nh) th nhng kt qu s c gi v client ngay sau khi mi dng c thc hin xong. t tn tp hp cc k t Thit t ni dung HTTP. C mt s kiu ph bin + Text/HTML (Mc nh) + Image/gif + Image/jpeg + Text/plain t thi gian mt trang web c ct trn browser trc khi n ht hn. Nu t =0 trang ny s khng bao gi c lu li trn browser.
Gi chui k t v trnh duyt Chuyn a ch trnh duyt sang mt a ch mi Ch : Trong mt s phin bn c ca web server ta khng c thc hin bt c mt lnh vit no ln trnh duyt trc khi thc hin lnh ny. Nu lm tri iu ny s gy ra li. Kt thc vic thc hin scripts, tr v client gi tr hin ti Gi ngay lp tc gi tr c lu trong buffer v trnh duyt. Lnh ny i hi Response.Buffer phi c t l true, nu khng s gy ra li run-time error. Xa ngay lp tc ton b gi tr output c lu trong buffer. Lnh ny i hi Response.Buffer phi c t l true, nu khng s gy ra li run-time error.
V d: Trong v d di y c 2 trang web, mt trang l trang LOGIN.HTM, trn trang ny c mt form cho php ngi dng nhp tn v mt khu. Khi nhn submit, cc thng tin c gi sang trang LOGIN.ASP. Nu tn truy nhp ng l "user" v mt khu ng l "password" th trnh duyt t ng chuyn sang trang DEFAULT.ASP, ngc li trnh duyt quay v trang LOGIN.HTM - Trang LOGIN.HTM: 109
- Kt qu:
- Trang LOGIN.ASP
* V d s dng Application
v
Application.Contents("dbTimeOut") = 15
b. StaticObject(Key):
Thuc tnh ny dng truy xut cc i tng c nh ngha trong tp hp. Tp hp ny c cc thuc tnh Item, Key, Count, Chi tit xem li bi tp hp
V d:
5.7.4.4. Cc s kin
i tng Application ch c hai s kin l + Application_OnStart + Application_OnEnd y l hai s kin c x l trong file cu hnh Global.asa c cp Bi 3
112
Kt qu
b. CodePage
Thit t trang m hin th cc ni dung ng trong script hin thi.
c. TimeOut
Thit t thi gian ht hn ca mt Session (n v thi gian c tnh l pht) mc nh l 20 pht. C php: Session.TimeOut = <s pht>.
5.7.5.5. Cc s kin
i tng Session c hai s kin l + Session_OnStart + Session_OnEnd
113
5.7.6.1. Thuc tnh ScriptTimeOut Chc nng: Khong thi gian ti a cho php mt script chy trn Server.
C php: Server.ScriptTimeOut = <Khong thi gian> Khong thi gian c tnh bng giy, gi tr mc nh l 90 v y cng chnh l khong thi gian ti thiu. V d: Server.ScriptTimeOut = 120
V d:
114
Kt qu:
Chc nng: Chuyn ng dn logic thnh ng dn vt l trn a server. Chc nng ny thng c dng trong cc thao tc truy nhp trc tip file. C php: Server.MapPath(<ng dn logic>) V d: nu ta c file MAPPATH.ASP nm trn th mc gc ca web server v ng dn n th mc gc ca web server l E:\Inetpub\wwwroot\ th khi Server.MapPath("MapPath.asp") s l E:\Inetpub\wwwroot\MapPath.asp. iu th hin c th qua chng trnh di y: M lnh MAPPATH.ASP Kt qu
Kt qu
116
5.8. COOKIES
5.8.1. Khi nim COOKIES
Cookies l nhng mu thng tin nh c ghi trn cc my trm. Kh nng to Cookies ph thuc vo tnh nng ca trnh duyt. Cookies c dng xc nh user. Nu s dng IE chng ta c th xem thy cc files Cookies c ghi trong th mc tm thi ca IE, mc nh l C:\WINDOWS\Temporary Internet Files
Response.Cookies("<Tn Cookie>") = <Gi tr> Nu tn Cookie cha tn ti th mt tn mi s c to ra v ly gi tr ngc li s i gi tr ca Cookie thnh gi tr mi.
Trong cc phin bn web Server c, vic vit cc Cookies phi c t trc bt c mt lnh xut kt qu ra client no, tri iu ny script s b li. V d:
5.8.3. Ly gi tr ca COOKIES
ly gi tr ca Cookies ta s dng tp hp Cookies ca i tng Request. C php nh sau: Request.Cookies("<tn Cookie>")
V d:
5.8.4. Th mc COOKIES
L mt nhm cc Cookies c cng tn nhng c phn bit nhau bi kha. S dng kha cng Cookies tng t nh s dng mng hai chiu Array[n, m] nhng n=1 v m 1 117
* C php: - Thit lp: Response.Cookies("<tn Cookie>")(<Tn kha>) = <Gi tr> - c: Request.Cookies("<tn Cookie>")(<Tn kha>) * V d thit lp Cookies
Phng thc ny tr ra gi tr true nu Cookies c dng kha v false trong trng hp ngc li.
5.9.2 K ni vi c s d liu
5.9.2.1 To kt ni thng qua OLEDB v ODBC
Connection String l mt chui k t c dng lu tr thng tin v d liu nh sau: Thng tin v h qun tr CSDL Thng tin v v tr t CSDL M hnh kt ni CSDL: ADO cho php thng qua OLEDB hoc ODBC
Bng lit k kt ni OLEDB v ODBC Data source Microsoft Access OLEDB Provider=Microsoft.Jet.OLEDB4.0;Data source = path n .mdb 118
Provider=SQLOLEDB.1;Data source = path n CSDL trn my ch ODBC Driver={Microsoft Access Driver (*.mdb)};DBQ = ng dn n tp .mdb Driver={SQL Server.1 };Server= ng dn n CSDL trn server
S dng phng thc Open m kt ni CSDL. Tham s ca phng thc ny ly t chui Connection String, chui ny tng ng vi CSDL.
Khi cn kt ni c nh cho tt c cc trang ta c th thit lp tm vc cho i tng Connection bng cch vit cc th tc sau trong tp tin global.asa mc Application: mc Session:
THi gian thc hin cu lnh, nu vic thc hin vt thi gian nh, n s thng bo li True/False: True cho php bin dch trc khi thc hin cu lnh, falsse ngc li Thc thi cu lnh
Prepard Execute
b. Phng thc Addnew: Cho php to mt bn ghi mi, gn d liu mi cho cc field ca
cc bn ghi v n ch c cp nht vo CSDL khi ta gi phng thc Update hay Updatebatch
c. Phng thc Update: Phng thc ny dng cp nht bn ghi hin thi trong CSDL
d. Phng thc Delete: phng thc ny cho php xa bn ghi trong Recordset C php: objRs.Delete <tham s>
122
Tr v mt i tng Recordset, mi dng ca Recordset lu trong tp hoc th mc Di chuyn mt tp hay mt th mc M mt i tng Record tn ti, to mi mt tp hoc th mc
Close Copyto Flush LoadFromFile Open Read ReadText SaveToFile SetEOS SkipLine Write WriteText
ng i tng Stream Chp mt s k t hoc byte t i tng Stream ny sng i tng Stream khc Gi ni dung ca i tng Stream Ly ni dung ca mt i tng vo i tng Stream M mt i tng stream t URL hay i tng Record c s lng byte trong i tng Stream cha d liu nh phn c s k t trong i tng Stream cha ni dung l text Lu ni dng i tng Stream vo tp Thit lp thuc tnh ca EOS i vi v str hin thi B qua mt dng khi c mt Text Stream Ghi mt s lng byte ca d liu nh phn v i tng Stream Ghi d liu dng Text vo i tng Stream 123
124