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 모듈을 버전업하여 해결.
컴퓨터분류