[첫화면으로]Perl/CGI모듈

마지막으로 [b]

use CGI;
$q = new CGI;     # 이런 식으로 생성한 후에

print $q->textfield(-name=>"Name", -default=>"이름을 넣으세요", -size=>20, -maxlength=>"80"); # 이런 식으로 쓴다.

hidden field 를 생성할 때 주의할 점

print $q->hidden(-name=>"hidden_name", -default=>"hidden_value");
위와 같이 쓸 경우, 만일 그 URL 이나 POST 메쏘드를 이용해서 이미 hidden_name 의 값이 다른 값을 갖고 있을 경우는 이전의 값이 출력되어 버린다.
예: URL 이 ....pl?hidden_name=old_value 로 부를 경우, 위 함수의 결과는
<input type="hidden" name="hidden_name" value="hidden_value"> 가 되는 것이 아니라
<input type="hidden" name="hidden_name" value="old_value"> 가 되어 버린다는 것이다

따라서 확실하게 쓰려면 param() 함수를 사용해서 다음과 같이 해 주어야 한다.

$q->param("hidden_name", "hidden_value");   # 먼저 이렇게 할당한 후
print $q->hidden(-name=>"hidden_name");     # 이렇게 출력

POST로 요청이 올 때 URL 뒤에 붙은 파라메터 끄집어내기

param() 은 POST로 요청이 올 경우는 URL뒤에 붙은 "?var=value"를 처리하지 못함. 이것은 url_param()으로 받을 것. (See UseModWiki소스수정/TrackBack)

textfield, textarea, submit 의 tabindex

위 세 함수를 쓸 경우 자동으로 tabindex 항목을 부여하는 경우를 발견. 모듈 버전에 따른 차이로 보이나 정확히 확인하지 못함. (See Diary/탭을눌렀을때포커스이동문제)

[이 글]에 의하면 3.12부터 다시 그 기능을 끈 것을 default로 했다고 함. 이 서버에서는 CGI 모듈을 버전업하여 해결.
-- Raymundo 2006-3-10 2:46 pm


컴퓨터분류

마지막 편집일: 2007-1-8 12:19 pm (변경사항 [d])
1780 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기