Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
билеты_все.docx
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
121.92 Кб
Скачать

Билет 37 Формы и их использование в JavaScript

Для обращения к самой форме и ее элементам используют именование:

<FORM NAME=f_name METHOD=post ACTION="javascript:...;">

<INPUT NAME=i_name SIZE=30 MAXLENGTH=30>

</FORM>

После именования, ко всей форме или ее элементам можно будет обратиться по имени, что сильно облегчает процесс написания скриптов:

window.document.f_name.i_name.value="Изменяем значение текстового поля";

Формы широко используются на Интернет. Информация, введенная в форму, часто посылается обратно на сервер или отправляется по электронной почте на некоторый адрес. Проблема состоит в том, чтобы убедиться, что введеная пользователем в форму информация корректна. Легко проверить ее перед пересылкой в Интернет можно с помощью языка JavaScript.

Если Вы хотите, чтобы за вносимыми в форму данными следил сервер, то Вы должны использовать интерфейс CGI (Common Gateway Interface).

С помощью JavaScript Вы не сможете создать книгу читательских отзывов, поскольку JavaScript лишен возможности записывать данные в какой-либо файл на сервере. Делать это Вы можете только через интерфейс CGI.

Использование свойства method в JS.

Всем нам уже давно знакомо свойство HTML форм – method. Как известно это свойство определяет способ передачи данных от формы обработчику.

JavaScript может самостоятельно определять и изменять значение этого свойства, как и множества других.

Таким образом JS позволяет в режиме реального времени изменять метод передачи данных от формы, что может оказаться очень полезным при создании универсальных форм, способных встраиваться в различные html страницы.

Свойство target определяет имя окна, в которое следует загружать результат обращения к CGI – скрипту. Применение значения этого свойства внутри JavaScript–программ не оправдано, так как всегда можно получить идентификатор окна или задействовать встроенный массив frames[0] и свойства окна opener, top, parent и т.п. Для загрузки внешнего файла в некоторое окно всегда можно применить метод window.open(). Но тем не менее использовать это свойство оказывается иногда очень полезно.

В наиболее общем виде оператор <FORM>, предназначенный для создания форм в документах HTML, выглядит следующим образом:

<FORM

NAME="Имя_формы"

TARGET="Имя_окна"

ACTION="Адрес_URL_расширения_сервера"

METHOD=GET или POST

ENCTYPE="Кодировка_данных"

onSubmit="Обработчик_события_Submit">

. . .

определение полей и органов управления

. . .

</FORM>

Параметр NAME задает имя формы. Это имя нужно для адресации формы как свойства объекта Document.

Назначение параметра TARGET аналогично назначению этого же параметра в операторе <A>. Когда форма используется для передачи запроса расширению CGI сервера Web, ответ, полученный от сервера, отображается в окне. Имя этого окна задано параметром TARGET. Если ответ должен отображаться в том же окне, что и форма, то параметр TARGET задавать не нужно.

С помощью параметра ACTION указывается адрес URL загрузочного файла программы CGI, а также передаваемые расширению параметры. В том случае, когда форма предназначена для передачи данных расширению сервера Web, параметр ACTION является обязательным. Но если данные, введенные в форме, обрабатываются сценарием JavaScript локально и не передаются серверу Web, этот параметр можно опустить.

Параметр METHOD задает метод передачи данных из формы расширению сервера Web и может принимать значения GET или POST. Если данные из полей формы обрабатываются сценарием JavaScript локально, параметр METHOD задавать не нужно.

Параметр ENCTYPE задает тип MIME передаваемых данных и используется очень редко. Если форма предназначена для передачи текстовых данных (как это обычно бывает), этот параметр по умолчанию имеет значение application/x-www-form-urlencoded. В этом случае для передаваемых данных используется так называемая кодировка URL. Тип данных multipart/form-data позволяет передавать как текстовые, так и двоичные данные. При локальной обработке данных сценарием JavaScript параметр ENCTYPE не задается.

Задание: Разработать класс, характеризующий фильм (название, режиссер, год выпуска и т.д). Класс должен иметь конструктор по умолчанию и конструктор с параметрами

#include<string>

#include<iostream>

#include<stdio.h>

#include <stdlib.h>

#include <conio.h>

using namespace std;

//объявление класса

class Film

{

public:

Film();

Film(std::string n,std::string a,int y);

~Film();

std::string GetName();

void SetName(std::string n);

std::string GetAuthor();

void SetAuthor(std::string a);

int GetYear();

void SetYear(int y);

private:

std::string name;

std::string author;

int year;

};

//программа использующая класс

int main()

{

int N=3;

Film R1;

Film R2("Avatar","Pupkin",1998);

R1.SetName("Raduga");

R1.SetAuthor("Ivanov");

R1.SetYear(2022);

cout<<R1.GetName()<<" "<<R1.GetAuthor()<<" "<<R1.GetYear()<<endl;

cout<<R2.GetName()<<" "<<R2.GetAuthor()<<" "<<R2.GetYear()<<endl;

Film R3[N];

std::string nn;

std::string na;

int ny;

for(int i=0;i<N;i++)

{

cout<<"Enter name: ";

cin>>nn;

R3[i].SetName(nn);

cout<<"Enter author: ";

cin>>na;

R3[i].SetAuthor(na);

cout<<"Enter year: ";

cin>>ny;

R3[i].SetYear(ny);

}

for(int i=0;i<N;i++)

cout<<R3[i].GetName()<<" "<<R3[i].GetAuthor()<<" "<<R3[i].GetYear()<<endl;

getch();

return 0;

}

Film::Film()//конструктор по умолчанию

{}

Film::Film(std::string n,std::string a,int y) //конструктор с параметрами

{

name=n;

author=a;

year=y;

}

Film::~Film()

{}

std::string Film::GetName()

{

return name;

}

std::string Film::GetAuthor()

{

return author;

}

void Film::SetName(std::string n)

{

name=n;

}

void Film::SetAuthor(std::string a)

{

author=a;

}

int Film::GetYear()

{

return year;

}

void Film::SetYear(int y)

{

year=y;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]