Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы работы в сети Интернет. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Пе ре чис ли те ос нов ные час ти XML-до ку мен та.1. Дай те ха рак те ри сти ку кор рект но му XML-до ку мен ту.2. Пе ре чис ли те ссыл ки на сим во лы, ис поль зуе мые в XML.3. Что по ни ма ет ся под ва лид но стью XML-до ку мен та?4. Как уст ро ен шаб лон DTD-до ку мен та?5. Как за да ют ся эле мен ты в шаб ло не DTD-до ку мен та?6. Как оп ре де лить и ис поль зо вать сущ ность XML?7. Что зна чит оп ре де лить ат ри бут в шаб ло не до ку мен та DTD?8. Как вы пол нить пре об ра зо ва ние со дер жа ния XML-до ку мен та?9. Как уст рое на кас кад ная сти ле вая таб ли ца?10. Как ис поль зу ет ся кас кад ная сти ле вая таб ли ца для ото бра же ния со дер жа-11.
ния до ку мен та? Что та кое XSL-до ку мент и XSL-тег?12. Как стро ит ся и ис поль зу ет ся XSL-до ку мент?13. Дай те клас си фи ка цию XSL-те гов и ука жи те их осо бен но сти.14. Как ис поль зу ют ся шаб ло ны XSL?15.
Кон троль ные во про сы
51
Гла ва 3
СЦЕ НА РИИ И ИХ ИС ПОЛЬ ЗО ВА НИЕ
Под сце на ри ем под ра зу ме ва ет ся про грамм ный код, ко то рый вы пол ня ет­ся при об ра ще нии поль зо ва те ля к ин фор ма ци он но му ре сур су. Су ще ст ву ют сце на рии, ко то рые вы пол ня ют ся на уда лен ном сер ве ре се ти Ин тер нет, та­кие сце на рии на зы ва ют ся сер вер ны ми. Сце на рии, ко то рые на хо дят ся внут­ри ре сур са, по лу чен но го поль зо ва те лем се ти, на зы ва ют ся кли ент ски ми. Их вы пол ня ет про грам ма поль зо ва те ля се ти.
В учеб ном по со бии рас смат ри ва ют ся кли ент ские сце на рии, на пи сан ные на язы ке JavaScript. За пуск та ких сце на ри ев мо жет про из во дить ся с по мо­щью фор мы HTML-стра ни цы.
Фор ма пред став ля ет со бой кон тей нер на стра ни це, в ко то рый со б ра ны эле мен ты диа ло га ме ж ду поль зо ва те лем и сце на ри ем.
В об щем ви де фор мы бы ва ют, как уже го во ри лось, двух ос нов ных ти пов: сер вер ные и кли ент ские. В пер вом слу чае об ра бот ку дан ных, по лу чен ных из фор мы, и воз врат ре зуль та тов вы пол ня ет сер вер ная про грам ма, рас по ло жен­ная на дру гом ком пь ю те ре се ти. Во вто ром слу чае про грамм ный код для ра­бо ты с фор мой рас по ла га ет ся с ней на од ной стра ни це. На рис. 3.1 по ка за ны эле мен ты диа ло га фор мы HTML.
Рис. 3.1. Эле мен ты диа ло га HTML-фор мы
1– тек сто вое по ле, 2 – блок ра дио кно пок, 3 – ячей ка,
4 – ко манд ная кноп ка, 5 – спи сок с од но знач ным вы бо ром,
6 – спи сок с мно го знач ным вы бо ром, 7 – тек сто вая об ласть
52
Для соз да ния фор мы слу жит тег:
<form name=»frmName» action=»URI» method=»Type»> <!– – Эле мен ты диа ло га – -> </form>,
где:
frmName – иден ти фи ка тор фор мы; URI – ад рес сер вер ной про грам мы; Type – тип взаи мо дей ст вия с сер вер ной про грам мой (POST или GET).
Кли ент ская фор ма за да ет ся те гом ана ло гич ной струк ту ры, но без за да-
ния па ра мет ров
Сле ду ет от ме тить, что эле мен ты диа ло га фор мы соз да ют ся те га ми, и в язы ке HTML нет средств по зи цио ни ро ва ния эле мен тов диа ло га в кон­тей не ре фор мы. За да чу по зи цио ни ро ва ния мож но ре шить, ес ли ис поль зо­вать таб ли цу HTML. В этом слу чае в ячей ки таб ли цы, за да вае мые те гом TD, по ме ща ют те ги эле мен тов диа ло га, а таб ли цу не очер чи ва ют.
action и method.
3.1. ЭЛЕ МЕН ТЫ ДИА ЛО ГА ФОР МЫ
3.1.1. Ко манд ная кноп ка
Тег для раз ме ще ния кноп ки име ет вид:
<input type=»ButtonType» name=»cmdName» value=»под пись»>
Здесь:
ButtonType – тип кноп ки:
button• – кноп ка, тре бую щая на пи са ния ко да для ее об ра бот чи ка;
reset• – кноп ка для сбро са зна че ний в эле мен тах диа ло га;
submit• – кноп ка для со еди не ния с сер ве ром;
cmdName – иден ти фи ка тор кноп ки; под пись – над пись на кноп ке.
При на пи са нии скрип та ло каль ной об ра бот ки фор мы в тег соз да ­ния кноп ки до бав ля ют об ра бот чик со бы тия. Ка ж до му со бы тию на язы­ке JavaScript по став ле ны в со от вет ст вие сис тем ные иден ти фи ка то­ры. При ра бо те с фор мой поль зо ва тель де ла ет щел чок мы шью на кноп-
ке. Та кое со бы тие на зы ва ет ся
OnClick и его об ра бот чик бу дет иметь вид:
OnClick=”functionName()”. Здесь functionName – имя функ-
ции JavaScript, в ко то рой за пи сан код об ра бот ки со бы тия. Та кую функ цию
53
на зы ва ют со бы тий ной функ ци ей. При соз да нии об ра бот чи ков иден ти фи­ка тор кноп кам мож но не за да вать и не ис поль зо вать па ра метр name те га кноп ки.
Со бы тий ная функ ция со дер жит код, на пи сан ный на язы ке JavaScript. Со­бы тий ную функ цию по ме ща ют внут ри спе ци аль но го те га стра ни цы SCRIPT в го лов ной ее час ти. Фор мат те га:
<script language=”JavaScript”> <! – – Код JavaScript – ->
</script>
Для за да ния функ ции ис поль зу ет ся сле дую щее опи са ние JavaScript:
function functionName(){ //Операторы
}
Сре ди опе ра то ров мож но ис поль зо вать опе ра тор при ну ди тель но го за вер­ше ния ра бо ты функ ции return. Под роб нее об опе ра то рах и осо бен но стях язы ка JavaScript мож но по смот реть в при ло же нии 2.
Ес ли тре бу ет ся, то функ ция мо жет при ни мать ис ход ные дан ные для сво­ей ра бо ты. То гда она долж но об ла дать фор маль ны ми па ра мет ра ми.
При мер 1. Соз да ние фор мы с ко манд ной кноп кой. При ее на жа тии вы во дит ся со об ще ние Hello World!, в сис тем ное ок но брау зе ра.
<html>
<head>
<script language=»JavaScript»>
function fHello(){
alert(«Hello World !»);
}
</script>
</head>
<body>
<form name=»frmGo»>
<input type=»Button» value=»GO» onClick=»fHello()»>
</form>
</body>
</html>
54
При мер 2. Из ме ним струк ту ру функ ции, снаб див ее фор маль ным па-
ра мет ром для вы во да про из воль но го со об ще ния.
Код функ ции при мет вид:
function fHello(mes){
alert(mes);}
То гда об ра ще ние к функ ции из ме нит ся:
<input type=»Button» value=»GO» onClick=»fHello('Hello World !')»>
Фак ти че ское зна че ние для фор маль но го па ра мет ра mes бу дет стро ка
'Hello World !’.
При мер 3. Текст со об ще ния вво дит ся с по мо щью сис тем но го ок на вво-
да, за тем поль зо ва тель при ни ма ет ре ше ние о про дол же нии ра бо ты со стра­ни цей. Функ ция
fHello при мет вид:
function fHello(){
var mes=””;
mes=prompt(“message”,”Hello World”,”Dialog”);
if (mes==null) mes=”nothing”;
alert(mes);
bDialog=confi rm(“Stop working?”);
if (bDialog) window.close();}
Ес ли поль зо ва тель не ввел стро ку – по лу че но зна че ние null, то гда при-
ни ма ет ся зна че ние стро ки
nothing. Ок но брау зе ра за кры ва ет ся ме то дом
close сис тем но го объ ек та window.
3.1.2. Тек сто вое по ле
Эле мент за да ет ся те гом:
<input type=»text» name=»txtName» size=»n» maxlength=»m» value=»зна че ние»>,
где:
txtName – иден ти фи ка тор по ля;
*
n
– дли на по ля в сим во лах;
*
m
– мак си маль ное чис ло сим во лов при вво де;
зна че ние
*
– зна че ние по умол ча нию;
* – не обя за тель ные па ра мет ры.
55
Ес ли из ме нить тип по ля на password, то ввод в по ле ста но вит ся за кры­тым сим во лом «*». По ле хра нит вве ден ную (вы ве ден ную) стро ку сим во лов
в свой ст ве va
При мер. Стра ни ца с фор мой из трех по лей вво да. В пер вое по ле поль­зо ва тель вво дит сум му ва лю ты, во вто ром по ле он мо жет из ме нить курс или ос та вить зна че ние по умол ча нию, а в третье по ле вы во дит ся ре зуль тат в руб­лях.
lue.
<html>
<head>
<script language=»JavaScript»>
function fCalc(){
var forma=document.frmGo
var s,kurs,itogo;
s=forma.txtSumma.value;
kurs=forma.txtKurs.value;
s=parseFloat(s);
kurs=parseFloat(kurs);
itogo=kurs*s;
itogo=Math.round(itogo*100)/100;
forma.txtItog.value=itogo;
}
</script>
</head>
<body>
<form name=”frmGo”>
<input type=”text” name=”txtSumma” value=”0”><br>
<input type=”text” name=”txtKurs” value=”30.95”><br>
<input type=”text” name=”txtItog” value=”0”><br>
<input type=”Button” value=”GO” onClick=”fCalc()”>
</form>
</body>
</html>
56
Что бы ра бо тать с эле мен та ми фор мы с по мо щью ко да, нуж но по лу чить
объ ект-ука за тель на фор му с по мо щью опе ра то ра:
var forma=document.frmGo.
Иден ти фи ка тор forma – эк зем п ляр на шей фор мы. Ссыл ка на фор му вы пол ня ет ся с по мо щью объ ек та брау зе ра
в ви де ния к тек сто вым по лям фор мы слу жит опе ра тор разъ и ме но ва ния, ко то рый
пред став ля ет со бой точ ку. Так, опе ра тор оз на ча ет за пись в пе ре мен ную s зна че ния, хра ня ще го ся в тек сто вом по ле. Из тек сто во го по ля по сту па ет стро ка сим во лов, их пре об ра зо ва ние в чис ло
вы пол ня ет ся с по мо щью функ ции ла ми чис ла. Для ок руг ле ния по лу чен но го зна че ния в руб лях до вто ро го зна-
ка по сле за пя той слу жит ме тод ние 2).
Это мож но сде лать с по мо щью функ ции сим во лы, при год ные для пре об ра зо ва ния в чис ло, то она воз вра ща ет ло ги-
че ское зна че ние час ти в язы ке JavaScript слу жит точ ка.
document.frmGo. Здесь frmGo – имя на шей фор мы. Для об ра ще-
s=forma.txtSumma.value;
parseFloat(s), s – стро ка с сим во-
round клас са Math JavaScript (см. при ло же-
При вво де поль зо ва те лем чи сел по лез но про ве рять кор рект ность вво да.
isNaN(s). Ес ли стро ка s хра нит
false, ина че true. Раз де ли те лем дроб ной час ти от це лой
Пе ре пи шем на шу функ цию, вве дя кон троль над вво дом дан ных.
document
function fCalc(){
var forma=document.frmGo
var s,kurs,itogo;
s=forma.txtSumma.value;
kurs=forma.txtKurs.value;
if (isNaN(s)||isNaN(kurs)){
alert(«Bad numbers input!»);
return;}
s=parseFloat(s);
kurs=parseFloat(kurs);
itogo=kurs*s;
itogo=Math.round(itogo*100)/100;
forma.txtItog.value=itogo;}
Те перь при не вер ном вво де кур са или сум мы бу дет вы во дить ся со об ще-
ние об ошиб ке.
57
3.1.3. Тек сто вая об ласть
Эле мент диа ло га слу жит для вы во да/вво да мно го строч но го тек ста. Соз­да ет ся те гом:
<textarea name=”areName” rows=”r” cols=”c”> </textarea>,
где:
areName – иден ти фи ка тор эле мен та; r – вы со та об лас ти в стро ках; c – ши ри на об лас ти в сим во лах.
Текст эле мен та хра нит ся в свой ст ве ми ро ва ния строк в ко нец стро ки нуж но вклю чать ESC по сле до ва тель ность
value. При вы во де тек ста для фор-
\n.
3.1.4. Флаж ки
Ис поль зу ют ся флаж ки для пре дос тав ле ния вы бо ра поль зо ва те лю дан ных из пре до пре де лен но го на бо ра зна че ний. Фла жок, ис поль зуе мый в бло ках дан ных, с мно го знач ным вы бо ром на зы ва ет ся ячей кой и соз да ет ся те гом:
<input type=»checkbox» name=»chkName»>,
где:
chkName – иден ти фи ка тор флаж ка.
Для пред ва ри тель ной ак ти ви за ции флаж ка ис поль зу ет ся па ра метр
checked (при знак ак тив но сти флаж ка – на ли чие сим во ла «√» в его по ле).
Про вер ка со стоя ния флаж ка и из ме не ние его со стоя ния в ко де вы пол ня ет ся с по мо щью од но имен но го свой ст ва ву ет вы клю чен но му со стоя нию, а зна че ние
В бло ках с од но знач ным вы бо ром ис поль зу ет ся фла жок ра дио кноп­ка. Соз да ет ся ана ло гич ным те гом, в ка че ст ве ти па сле ду ет ука зать зна че ние
checked. Зна че ние false со от вет ст-
true – ак тив но му.
radio.
Что бы соз дать блок с од но знач ным вы бо ром, сле ду ет всем флаж кам бло­ка за дать оди на ко вый иден ти фи ка тор.
При мер. На рис. 3.2 по ка за на стра ни ца с тре мя эле мен та ми диа ло­га, блок од но знач но го вы бо ра с дву мя ра дио кноп ка ми, ячей ка и ко манд ная кноп ка для оп ро са со стоя ния бло ка и ячей ки. Ре зуль тат оп ро са вы во дит ся в сис тем ное ок но служ бы со об ще ний брау зе ра.
58
Рис. 3.2. Фор ма с флаж ка ми
Те ги для соз да ния фор мы при мут вид:
<form name=»frmGo»>
<input type=»radio» name=»rdoBlock» >One<br>
<input type=»radio» name=»rdoBlock» checked>Two<br>
<hr>
<input type=»checkbox» name=»chkBox» checked>Control<br>
<input type=»Button» value=»GO» onClick=»fState();»>
</form>
Код функ ции fState для со бы тия кноп ки onClick бу дет иметь вид:
function fState(){
var mes=»»;
mes+=»Block action\n»;
var forma=document.frmGo
if (forma.elements[0].checked){
mes+=»One»;
}
if (forma.elements[1].checked){
mes+=»Two»;
}
if (forma.chkBox.checked)
mes+=»\nControl– OK»;
else
mes+=»\nControl– NO»;
alert(mes);
}
59
Для оп ро са со стоя ния бло ка кно пок ис поль зу ет ся кол лек ция elements фор мы. Она по зво ля ет по ин дек су об ра тить ся к лю бо му эле мен ту фор мы. Ин дек са ция ве дет ся с ну ля. Эле мен ты диа ло га в кол лек цию по ме ща ют ся в по ряд ке сле до ва ния те гов их раз ме ще ния в фор ме.
3.1.5. Спи ски
Эле мент диа ло га по зво ля ет поль зо ва те лю вы брать зна че ние из оп ре де­лен но го на бо ра дан ных. Поль зо ва тель мо жет сде лать од но знач ный вы бор ли бо ото брать не сколь ко зна че ний в про из воль ном по ряд ке.
Спи сок с од но знач ным вы бо ром соз да ет ся те га ми:
<select name=»lstName»> <option value=”зна че ние1”>стро ка1 <option value=”зна че ние2”>стро ка2
… </select>,
где:
lstName – иден ти фи ка тор спи ска; строкаi – текст эле мен та спи ска, вы во ди мый на эк ран.
Спи сок с мно го знач ным вы бо ром соз да ет ся с по мо щью ана ло гич ных те­гов. В го лов ной тег сле ду ет до ба вить клю че вое сло во
multiple. Па ра метр
value хра нит сим воль ное дан ное значение, свя зан ное с кон крет ным эле-
мен том спи ска – стро кой, на эк ра не не ото бра жа ет ся и яв ля ет ся не обя за­тель ным.
При оп ро се спи сков од но знач но го вы бо ра ис поль зу ет ся кол лек ция строк эле мен тов спи ска
text. Для дос ту па к стро ке вы бран но го эле мен та нуж но ука зать ее ин-
ст ве декс. Ин дек си ру ют ся стро ки с ну ля. Зна че ние ин дек са вы бран ной стро ки
хра нит ся в свой ст ве ки осу ще ст в ля ет ся с по мо щью свой ст ва
При мно го знач ном вы бо ре сле ду ет вы пол нить пе ре бор всех строк кол­лек ции и ото брать ак тив ные стро ки пу тем про вер ки свой ст ва кол лек ции строк поль зо вать свой ст во
options. Сим во лы вы бран ной стро ки хра нят ся в свой-
selectedIndex кол лек ции. Дос туп к зна че нию стро-
value.
selected
options. Для оп ре де ле ния ко ли че ст ва строк нуж но ис-
length кол лек ции.
При мер 1. Тре бу ет ся вы пол нить оп рос спи ска с од но знач ным вы бо­ром. Нуж но вы вес ти вы бран ную стро ку спи ска и зна че ние, свя зан ное с этой стро кой. Те ги для соз да ния фор мы:
<form name=”frmGo”>
60