チョコミントアイス

恐れ入ります。
Perlで、フォームから送信して、変数に代入したいのですがうまくいきません。

print qq!<form action="./xxx.cgi" method="get">!;

opendir(DIRHANDLE, "./xxx");
foreach(readdir(DIRHANDLE)){
next if /^\.{1,2}$/;

print qq!
<input type="checkbox" name="$_" value="$_">
<input type="submit" value="送信"></form>

とし、ディレクトリ内のフォルダ名をnameに格納してxxx.cgiへ送信します。

xxx.cgi側では、

#!/usr/bin/perl

use cgi;
$form = CGI->new;

として、送信されたデータを次々と代入したいのですが、どのようにしたらよいでしょうか。

A 回答 (1件)

まず、チェックボックスのnameは固定にします。

HTMLを吐き出すcgiにに記載するフォーム側は、

<input type="checkbox" name="flist" value="$_">$_ <br>

xxx.cgiは、

$form = new CGI;
@list = $form->param("flist");

でvalueを取得できます。これで解決出来ませんか?

あと、気になったのですが、readdirしてるので、この場合ファイルもチェックボックスに出てしまいますよね?

参考URL:http://www.futomi.com/lecture/form/cgi-pm.html#s …
    • good
    • 0
この回答へのお礼

ありがとうございました。解決しました。

お礼日時:2013/06/09 15:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報