2010-04-06 4 views
-1

개인의 양식 데이터를 저장할 수있는 양식을 만들어 나중에 양식 완성을 마칠 수 있도록 노력합니다. 데이터를 외부 파일에 저장하는 데 아무런 문제가 없으며 사용자가 전체 페이지 양식을 완료 한 후에 만 ​​데이터를 저장하도록 허용 된 경우 수행하려는 작업을 쉽게 수행 할 수 있음을 알고 있습니다. 그러나 여러 페이지 중 하나가 완전히 완료되지 않은 경우에도 언제든지 양식의 데이터를 저장할 수 있기를 원합니다. 또한 CGI.pm 형식의 명령 대신 내 Perl 스크립트를 통해 자체 HTML 스크립팅을 사용하고 싶습니다.어떻게 Perl을 사용하여 라디오 버튼을 체크 표시로 할 수 있습니까?

그래서 사용자가 세션의 끝에서 자신의 불완전한 데이터를 저장하고 자신의 데이터를 검색 할 수 나중에 암호로 로그인합니다. 그래서 나는 외부 파일에서 암호를 기반으로 데이터를 검색합니다.

#-------------------------------------------- 
open(INFO, "MYTEXTFILE.txt"); 
    @data = <INFO>; 
close(INFO); 
#-------------------------------------------- 
foreach $key (@data) 
{ 
    ($aaa1,$aaa2,$aaa3,$aaa4,$aaa5,$e)=split(/,/,$key); 
} 

그런 다음 사용 가능한 데이터를 다시 html 형식으로 입력하려고합니다. 텍스트 상자를 사용하여 데이터를 수집 한 경우 매우 쉽습니다.

라디오 버튼 인 경우 더 까다 롭습니다. 내가 사용하는 :

print" 
<table width='600' align='center' cellpadding='3'> 
<tr bgcolor=''> 
      td bgcolor=''>1. Question #1      
</td> 
<td>1 
<input name='aaa1' type='radio' value='1'"; if ($aaa1==1) {print " CHECKED ";} print"/>/td> 
<td>2 
<input name='aaa1' type='radio' value='2'"; if ($aaa1==2) {print " CHECKED ";} print" />/td> 
<td>3 
<input name='aaa1' type='radio' value='3'"; if ($aaa1==3) {print " CHECKED ";} print" />/td> 
<td>4 
<input name='aaa1' type='radio' value='4'"; if ($aaa1==4) {print " CHECKED ";} print" />/td> 
<td>5 
<input name='aaa1' type='radio' value='5'"; if ($aaa1==5) {print " CHECKED ";} print" />/td> 
</tr> 
</table> 
"; 

더 편리하고 편리한 방법이 있습니까?

+5

는 *** 내가 대신 cgi.pm 양식 명령을 호출 내 펄 스크립트를 통해 내 자신의 HTML 스크립트를 사용하려면. *** * 한숨! 당신은 당신이 모르는 무엇인지 충분히 알 수 없습니다 *. 당신에게 물고기를주는 것은 옳은 일이 아닙니다. CGI.pm과 많은 훌륭한 템플릿 처리 모듈 중 하나를 사용하십시오. –

+0

코드가 좀 망가져 보입니다. 코드 섹션에서 일반 텍스트를 사용하지 마십시오. – lugte098

+1

@Sinan - 나는 GGI에 대해 잘 알고 있기 때문에 그에게 의심의 이익을 기꺼이 줄 것이다. 자신의 웹 솔루션을 만들기 위해 롤업일지도 모른다. 다소 실용적이지만 잠재적으로 매우 보람있는 지식을 -experience wise ... (C와 Perl 모두를위한 CGI 프레임 워크를 만들었을 때, 나는 증명할 수있다.) – DVK

답변

1

예 쉬운 방법이 있습니다. 당신이 (A great number of existing Perl templating ones를 사용하는 것이 아니라) 자신의 템플릿 솔루션을 손으로 압연 주장하는 경우

foreach my $value (1,2,3,4,5) { 
    my $checked = ($aaa1 == $value) ? "CHECKED " : ""; 
    print "<td>$value <input name='aaa1' type='radio' value='$value' $checked/></td>\n"; 
} 

그러나, 당신은 올바른 방법으로해야한다. 다른 사람이 의견에서 지적한대로, 또한 ...

을 등 다양한 입력 유형에 대한 일반적인 방법을 가지고하는 템플릿 솔루션을 통해 HTML에서 코드를 분리하기위한 이유가 - 그것은 크게 유지 보수를 단순화합니다.

1

출력에 거의 동일한 텍스트와 코드가 5 번 반복됩니다. for 루프를 사용하는 것이 더 편리합니다.

관련 문제