Q&A

  • Request.QueryFields 값의 배열값 가져오기
<HTML>
<BODY>
<TITLE> Testing Delphi ASP </TITLE>
<form action=test.exe method=post>
<input name=aaa value=111>
<input name=aaa value=222>
<input type=submit>
</form>
</BODY>
</HTML>

위의 소스에서 보듯이 aaa라는 이름은 배열로 되어있어
test.exe에서 웹서버애플리케이션으로 작성시
Request.QueryFields.values['aaa'] 하면 첫번째 111만 나옵니다
aaa의 값중 222의 값을 읽는 방법은 없는지요?
2  COMMENTS
  • Profile
    김민식 2002.04.17 03:46


    델파이헬프를 보면 TStrings에 Name=Value에 형식으로 값을 넣을때
    identify(구분할수 있는값) string을 넣으라고 합니다. 내부적으로 살펴봐도
    name=111 #$??#$?? name=222 라고 QueryField에 값이 있읍니다.

    단지 Values['name'] 하면 처음것만 되게 되어 있죠..그러니 님이 사용하는
    방식은 옭지 않은 방식 이겠네요..

    그래도 꼭 그렇게 해야 겠다면 다음의 코드를 이용 하세요..

    type
      TArrayStr = array of string;

    function GetMyValue(Strings: TStrings): TArrayStr;
    var
      i: Integer;
    begin
      SetLength(Result , Strings.Count);
      for i := 0 to Strings.Count - 1 do
        Result[i] := Copy(Strings.Strings[i], Pos('=', Strings.Strings[i]) + 1, MaxInt);
    end;

    procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
      Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    var
      sArray: TArrayStr;
      i: Integer;
    begin
      sArray := GetMyValue(Request.QueryFields);
      for i := 0 to Request.QueryFields.Count - 1 do
        Response.Content := Response.Content + sArray[i];
    end;
  • Profile
    김도형 2002.04.17 02:24
    Post Method로 받게 되면
      Request.ContentFields.Values['aaa']

    GetMethod로 받으면
      Request.QueryFields.values['aaa']

    해야되는거 아닌가여???

    그리고 제가 해본결과... 배열로는 안잡히고

    첫번째 값만 받아오더라구요..배열로 한다고 하면...

    그런데 꼭 배열로 선언해야 되는 이유라도 있나여??


    도움이 됐을지 모르겠습니다.. ^^