ASP 강의 시리즈(15) HTML 양식 사용
저자:Eve Cole
업데이트 시간:2009-05-30 19:58:48
ASP 요청 개체를 사용하면 간단하면서도 강력한 스크립트를 만들어 HTML 테이블 데이터를 수집하고 처리할 수 있습니다. 이 항목에서는 기본 테이블 처리 스크립트를 만드는 방법을 배울 뿐만 아니라 웹 서버와 사용자 브라우저에서 테이블 정보의 유효성을 검사하는 몇 가지 유용한 기술도 배우게 됩니다.
HTML 테이블 정보
웹 정보를 수집하는 가장 일반적인 방법인 HTML 테이블은 웹 페이지에서 사용자 인터페이스 컨트롤을 제공하는 HTML 태그의 특별한 배열입니다. 텍스트 상자, 버튼 및 확인란은 사용자가 웹 페이지와 상호 작용하고 웹 서버에 정보를 제출할 수 있도록 하는 일반적인 컨트롤입니다.
다음 HTML 예제는 사용자가 이름, 나이를 입력할 수 있는 양식을 생성하고 이 정보를 웹 서버에 제출하는 버튼을 포함합니다. 양식에는 웹 브라우저에 추가 정보를 전달하는 데 사용할 수 있는 암시적 컨트롤(웹 브라우저에 표시되지 않음)도 포함되어 있습니다.
<FORM METHOD="POST" ACTION="myfile.asp">
<INPUT TYPE="텍스트" NAME="이름">
<INPUT TYPE="텍스트" NAME="성">
<INPUT TYPE="텍스트" 이름="나이">
<INPUT TYPE="숨김" NAME="사용자 상태" VALUE= "신규">
<INPUT TYPE="제출" VALUE="입력">
</FORM>
ASP 입력을 처리하는 양식 양식이 웹 서버에 정보를 제출하면 사용자의 웹 브라우저는 HTML <FORM> 태그의 ACTION 특성으로 지정된 .asp 파일을 요청합니다(이전 예에서는 파일 이름이 Myfile.asp 입니다). . .asp 파일에는 결과 테이블 표시, 데이터베이스 정보 쿼리 등 테이블 값을 조작하는 스크립트가 포함되어 있습니다.
.asp 파일을 사용하여 HTML 테이블에서 값을 수집하는 방법에는 세 가지가 있습니다.
정적 .htm 파일에는 .asp 파일로 값이 전송되는 테이블이 포함될 수 있습니다.
.asp 파일은 해당 정보를 다른 .asp 파일로 메일로 보내는 양식을 만들 수 있습니다.
.asp 파일은 해당 정보를 양식이 포함된 파일 자체에 메일로 보내는 양식을 만들 수 있습니다.
처음 두 가지 방법은 동일한 방식으로 작동하며 양식이 ASP 이외의 게이트웨이 프로그램과 상호 작용할 때 사용자 선택을 읽고 응답하는 명령을 포함할 수 있습니다.
테이블 정의가 포함되어 있고 정보를 자신에게 보내는 .asp 파일을 만드는 것은 테이블 작업을 수행하는 더 복잡하지만 강력한 방법입니다. 이 프로세스는 양식 입력 유효성 검사에 설명되어 있습니다.
양식 입력 받기
ASP 요청 개체는 URL 요청에 첨부된 양식 정보를 검색하는 작업을 크게 단순화하는 두 가지 컬렉션을 제공합니다.
쿼리스트링 컬렉션
QueryString 컬렉션은 요청된 URL에서 물음표 뒤에 오는 텍스트로 웹 서버에 전달된 값을 가져옵니다. HTTP GET 메소드를 사용하거나 테이블 값을 URL에 수동으로 추가하여 요청된 URL에 테이블 값을 추가할 수 있습니다.
예를 들어 이전 테이블 예제에서 GET 메서드(ACTION = "GET")를 사용하고 사용자가 Jeff, Smith 및 30을 입력한 경우 다음 URL 요청이 서버로 전송됩니다.
http://scripts/Myfile.asp?firstname=Jeff&lastname=Smith&age=30&userstatus=new
Myfile.asp에는 다음 테이블 처리 스크립트가 포함되어 있습니다.
안녕하세요, <%= Request.QueryString("firstname") %> <%= Request.QueryString("lastname") %>.
귀하는 <%= Request.QueryString("age") %>세입니다.
<%
Request.QueryString("userstatus") = "새 사용자"인 경우
응답.쓰기"이 웹사이트를 처음 방문하셨습니다!"
다음과 같은 경우 종료
%>
이 경우 웹 서버는 사용자의 웹 브라우저에 다음 텍스트를 반환합니다.
안녕하세요, Jeff Smith님, 귀하는 30세입니다. 이 웹사이트를 처음 방문하셨습니다.
QueryString 컬렉션에는 요청 본문에 나타나는 여러 값 중 하나에 액세스하는 데 사용할 수 있는 선택적 매개 변수가 있습니다. Count 속성을 사용하여 특정 유형의 값이 나타나는 횟수를 계산할 수도 있습니다.
예를 들어 다중 항목 목록 상자가 포함된 양식은 다음 요청을 제출할 수 있습니다.
http://list.asp?food=apples&food=olives&food=bread
다음 명령을 사용하여 여러 값을 계산할 수도 있습니다.
Request.QueryString("음식").Count
여러 값 유형을 표시하려면 List.asp에 다음 스크립트가 포함되어야 합니다.
<%Total = Request.QueryString("food").Count%>
<%For i = 1 ~ 전체%>
<%= Request.QueryString("food")(i) %> <BR>
<%다음%>
위 스크립트는 다음을 표시합니다:
사과
올리브
빵
양식 수집 길고 복잡한 양식 값을 웹 서버에 전달하기 위해 HTTP GET 방식을 사용하는 경우 정보가 손실될 수 있습니다. 대부분의 웹 서버는 GET 메서드를 사용하여 전달된 긴 테이블 값이 잘리도록 URL 쿼리 문자열의 길이를 엄격하게 제어하는 경향이 있습니다. 양식에서 웹 서버로 많은 양의 정보를 보내야 하는 경우 HTTP POST 방법을 사용해야 합니다. 이 방법은 HTTP 요청 본문에 테이블 데이터를 전송하는 데 사용되며 전송되는 문자 수는 무제한입니다. ASP 요청 개체의 Form 컬렉션을 사용하여 POST 메서드를 통해 전송된 값을 검색할 수도 있습니다.
Form 컬렉션은 QueryString 컬렉션과 동일한 방식으로 숫자 값을 저장합니다. 예를 들어, 사용자가 긴 이름 목록으로 테이블을 채우는 경우 다음 스크립트를 사용하여 해당 이름을 검색할 수 있습니다.
<% For i = 1 to Request.Form.Count %>
<% =Request.Form("names")(i) %>
<% 다음 %>
양식 입력 유효성 검사 좋은 양식 처리 스크립트는 데이터를 처리하기 전에 양식에 입력된 정보가 유효한지 확인해야 합니다. 유효성 검사 스크립트는 사용자가 양식에 입력한 정보 유형이 올바른지 확인할 수 있습니다. 예를 들어, 웹 사이트에 사용자가 재무 정보를 계산할 수 있는 양식이 포함되어 있는 경우 결과를 처리하기 전에 사용자가 실제로 텍스트가 아닌 숫자 정보를 입력했는지 확인해야 합니다.
양식 입력의 유효성을 검사하는 매우 편리한 방법은 정보를 자체적으로 전달하는 양식을 만드는 것입니다. 이 경우 .asp 파일에는 정보를 얻을 수 있는 테이블이 포함되어 있습니다. 예를 들어, 다음 스크립트는 정보를 자신에게 전달하여 사용자가 "age" 테이블 필드에 값을 입력했는지 확인합니다.
<% If Isnumeric(Request.QueryString("Age")) then %>
<p>안녕하세요. 귀하의 나이는 <%=Request.QueryString("age")%>입니다.
<%다른%>
<p>연령을 숫자로 입력하세요.
<%다음 경우 종료 %>
<양식 방법= "POST" ACTION="verify.asp" >
이름: <INPUT TYPE="text" NAME="이름" >
나이: <INPUT TYPE="text" NAME="Age" >
<INPUT TYPE="제출" VALUE="입력">
</FORM>
이 예에서 스크립트는 테이블이 포함된 동일한 verify.asp 파일에도 있습니다. 이 양식은 ACTION 특성에 verify.asp를 지정하여 정보를 자체적으로 전달합니다.
사용자가 유효한 정보를 입력했는지 확인하기 위해 클라이언트 측 스크립트를 생성할 수도 있습니다. 웹 브라우저에서 사용자 입력을 확인하면 웹 서버에 대한 네트워크 트래픽을 줄일 수 있을 뿐만 아니라 사용자에게 양식 입력 오류 메시지를 더 빨리 표시할 수 있습니다. 다음 스크립트는 사용자의 웹 브라우저에서 실행되며 사용자 정보를 웹 서버에 제출하기 전에 확인합니다.
<SCRIPT LANGUAGE="VBScript">
<!--
하위 btnEnter_OnClick
DimTheForm
TheForm = Document.MyForm 설정
If IsNumeric(TheForm.Age.Value) 그러면
TheForm.제출
또 다른
Msgbox "나이를 숫자로 입력해주세요."
다음과 같은 경우 종료
서브 끝
//-->
</SCRIPT>
<양식 방법= "POST" 이름= MyForm ACTION="myfile.asp" >
이름: <INPUT TYPE="text" NAME="이름" >
나이: <INPUT TYPE="text" NAME="Age" >
<INPUT TYPE="버튼" NAME="btnEnter" VALUE="Enter">
</FORM>