2016-11-23 60 views
1

如何訪問從SELECT標籤,然後傳遞到使用POST 形式選擇的所有選項的HTML表單設置是這樣的:的Perl ReadParse處理選擇HTML標籤有多種選擇slected

<div class="header">   
<FORM ACTION=/cgi-local/process.pl METHOD=POST> 
<p> 
CMS: 
</p> 
<h6>Hold Down control(CTRL) key to select multiple CMSs</h6> 

<SELECT NAME = "cms" multiple> 

<option></option>> 
<option>#1 - 15 N 0.4 N/O ONTARIO AVE</option>> 
<option>#2 - 15 S 1.1 S/O 6TH</option>> 
<option>#3 - 215 N CENTRAL 215</option>> 
<option>#4 - 215 S 0.45 S/O IOWA</option>> 

</SELECT> 
</p> 
<INPUT TYPE=SUBMIT VALUE="Submit Form" align="center"> 

</FORM> 
</INPUT> 
</div> 

Perl的部分,其中它處理使用ReadParse POST數據:

use CGI qw(:cgi-lib :standard); 
&ReadParse(%in); 

$cms = $in{"cms"}; 

顯示的$cms內容只是表明儘管數選擇所選擇的第一個選項。我如何訪問傳入的數據?

回答

2
use CGI qw(:cgi-lib :standard); 
&ReadParse(%in); 

AAAAH,九十年代...

如何訪問從SELECT標籤中選擇的所有選項?

使用multi_param

my @v = multi_param('cms'); 

在這樣做時,你會放棄用Perl 4的cgi-lib.pl兼容性。也就是說,不要使用&ReadParse(%in);而應該使用param來訪問CGI參數的值,並且使用%in散列。

perldoc perlhist,Perl的4個版本在1993年發行:

Larry 4.036 1993-Feb-05 Very stable.

您可以使用舊版本的CGI.pm被卡住。它是在2014年添加的。如果是這種情況,您可以使用my @v = param('cms');,但請閱讀文檔。