ASP - Form
Семейство Form извлекает значения элементов формы, отправленных в теле HTTP-запроса, с помощью формы, использующей метод POST.
Синтаксис
Request.Form(элемент)[(индекс)|.Count]
Параметры
элемент
Имя элемента формы, из которой семейство извлекает значения.
индекс
Необязательный параметр, который дает возможность получения доступа к одному из нескольких значений параметра. Может быть любым целым числом в диапазоне от –1 до Request.Form(параметр).Count.
Примечания
Семейство Form индексируется по именам параметров в теле запроса. Значение Request.Form(element) представляет собой массив всех значений элемента, которые встречаются в теле запроса. Можно определить число значений параметра, вызвав Request.Form(элемент).Count. Если параметр не имеет нескольких значений, связанных с ним, счетчик равен 1. Если параметр не найден, счетчик равен 0.
Для ссылки на отдельное значение элемента формы, имеющего несколько значений, необходимо указать значение для индекса. Параметр индекс может быть любым числом в диапазоне от 1 до Request.Form(элемент).Count. Если ссылаются на один из нескольких параметров формы без указания значения индекса, данные возвращаются в виде строки, разделенной запятыми.
Когда Request.Form используется с параметрами, веб-сервер производит анализ тела HTTP-запроса и возвращает указанные данные. Если приложение требует неразобранных данных из формы, можно обратиться к ним, вызвав Request.Form без параметров.
Примечание. При работе с ASP и отправке больших объемов данных, превышаюших 100 Кбайт, метод Request.Form использовать нельзя. Если приложению нужно отправить данные, выходяще за этот предел, можно создать компонент, использующий метод Request.BinaryRead.
Можно перебирать все значения данных в запросе формы. Например, если пользователь заполняет форму, указывая два значения - Chocolate и Butterscotch - для элемента FavoriteFlavor, можно извлечь эти значения с помощью сценария, приведенного ниже.
<%
For i = 1 To Request.Form("FavoriteFlavor").Count
Response.Write Request.Form("FavoriteFlavor")(i) & "<BR>"
Next
%>
Приведенный выше сценарий будет отображать следующую информацию.
Chocolate
Butterscotch
Можно использовать этот прием для отображения имени параметра, как показано в сценарии, приведенном ниже.
<%
For i = 1 to Request.Form("FavoriteFlavor").count %>
Request.Form(FavoriteFlavor) = <%= Request.Form("FavoriteFlavor")(i)_
%> <BR>
<% Next %>
Этот сценарий отобразит в обозревателе следующее:
Request.Form(FavoriteFlavor) = Chocolate
Request.Form(FavoriteFlavor) = Butterscotch
Пример
Рассмотрим следующую форму:
<FORM ACTION = "/scripts/submit.asp" METHOD = "post">
<P>Your first name: <INPUT NAME = "firstname" SIZE = 48>
<P>What is your favorite ice cream flavor: <SELECT NAME = "flavor">
<OPTION>Vanilla
<OPTION>Strawberry
<OPTION>Chocolate
<OPTION>Rocky Road</SELECT>
<P><INPUT TYPE = SUBMIT>
</FORM>
Из этой формы может быть передано следующее тело запроса:
firstname=James&flavor=Rocky+Road
Затем может быть использован приведенный ниже сценарий:
Welcome, <%= Request.Form("firstname") %>.
Your favorite flavor is <%= Request.Form("flavor") %>.
Результат будет иметь следующий вид:
Welcome, James. Your favorite flavor is Rocky Road.
Если использовать приведенный ниже сценарий:
The unparsed form data is: <%= Request.Form %>
результат будет иметь следующий вид:
The unparsed form data is: firstname=James&flavor=Rocky+Road
Примечание. Iесли форма включает несколько объектов с одинаковыми именами (например, теги HTML SELECT), элементом в семействе формы будет список всех выбранных значений, разделенных запятыми.
Область применения
См. также
ClientCertificate_ClientCertificate, Cookies_Cookies_Request, QueryString_QueryString, ServerVariables_ServerVariables