336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

프로젝트 하다보면 폼에서 같은 이름으로 배열을 이용해서 혹은 구분자를 이용해서 받은다음

짤라서 사용해야하는 경우가 심심치 않게 생긴다... 이번 포스트는 이에관한 내용이다.




이런 입력방식에서 저런 결과를 얻어야하는 경우를 생각해보자....


input.asp -- 


<html>

 <head>

  <title> test </title>

 </head>


 <body>

 <table>

<form name="test" method="post" action="result.asp">

  <% for i = 1 to 10 %>

  <tr>

   <td><input type="text" name="TESTCODE"></td>

  </tr>

  <% next %>

  <tr>

   <td><input type="submit" value="전송"></td>

  </tr>


<form>

</table>

 </body>

</html>


result.asp--


TESTCODE = request("TESTCODE")


temp = split(TESTCODE,",")


for i = 0 to ubound(temp)

 response.write temp(i) & "<br/>"

next 

%>


위와같은 형식으로 사용할 수 있게된다... 물론 틀린방법이라고 생각하지는 않치만 다음과 같은 문제점이 발생할 수 있다...


1. 기본적으로 같은 이름을 가진 입력객체가 여러개 존재하면 구분자는 콤마(,) 로 주어진다

2. 1번과 같은 문제점 때문에 입력내용에서 콤마(,)가 포함이되는 경우에는 split를 사용하지 못한다.

3. split 와 ubound라는 과정을 거친후에 연산을 할 수 있게된다.


실제로 위와같은 코딩이되어있는 환경에서 콤마(,)를 입력해서 넣어보자

입력 예시는 1 2 3 4 5 6 7, 8 9 0 으로 입력을 하였다.




위의 그림과같이 가운데 공백이 들어가게 된다 즉 10개를 입력했지만 값은 11개가 생기는 것이고

그렇다면 받는 페이지에서 10개로 전제하에 작업된 내용들은 1개의 값을 손실할 수 밖에 없는 노릇이다.


그렇다고 콤마(,) 를 replace(TESTCODE,",","&#44;") 이런식으로 할수도 없는 노릇이다;;;


이것은 쉽게 해결 가능한 문제이다

result.asp 소스를 다음과같이 변경해서 다시 테스트를 해보자. 

result.asp --

<%

for i = 1 to request("TESTCODE").Count

 response.write request("TESTCODE")(i) & "<br/>"

next 

%>

그다음 다시 결과를 확인해보았다.




10개의 입력에 10개의 결과를 올바르게 가져올 수 있다.

Posted by 당양부부34

블로그 이미지
주요 토렌트를 블로깅하고 있습니다. 토렌트 순위 등은 다른 사이트를 찾아보세요. 주요 웹툰 순위도 게재했어요 경제를 좋아하는 일산의 행복한 프로그래머입니다.
당양부부34
Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함