![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
<input type="checkbox" name="id" value="0">
<input type="checkbox" name="id" value="1">
<input type="checkbox" name="id" value="2">
<input type="checkbox" name="id" value="3">
のようなフォームのキーと値を、CGIの方では%inで受け取ります。
まずCGIモジュールを用いてキーと値を$keyと$valに格納したのち、idというキーは4つの値を受け取るので、
foreach my $key ($q->param()) {
my $val=$q->param($val);
if(defined($in{$key)) {
$in{$key}.="\0";
}
$in{$key}.=$val;
}
私のイメージでは、この処理で
$in{'id'}="0\01\02\03";
が得られるつもりでした。
ところが実際には$q->param('id')で取り出せるのは最初の"0"のみで、したがって得られる結果は
$in{'id'}="0";
となります。
CGIモジュールを使わなければ、
my $buf;
if(ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN,$buf,$ENV{'CONTENT-LENGTH'});
}
else {
$buf=$ENV{'QUERY_STRING'};
}
foreach(split(/&/,$buf)) {
my ($key,$val)=split(/=/);
if(defined($in{$key)) {
$in{$key}.="\0";
}
$in{$key}.=$val;
}
のようにして、イメージ通り
$in{'id'}="0\01\02\03";
を得られますが、CGIモジュールは他でも使うので、どうせならCGIモジュールを使った簡便なコーディングが出来ないものかと思案する次第です。
しかしながら私に思いつく方法は
<input type="checkbox" name="id0" value="0">
<input type="checkbox" name="id1" value="1">
<input type="checkbox" name="id2" value="2">
<input type="checkbox" name="id3" value="3">
として、まずCGIモジュールを用いた上記の方法で$in{'id0'}~$in{'id3'}までを生成し、次に
if(/(\w+)\d/) {
if(defined($in{$1})) {
$in{$1}.="\0";
}
$in{$1}.=$val;
}
とやる方法しか思いつきません。
チェックボックスを用いて複数回答を得るというのはよくある話なので、CGIモジュールにもっと良いコーディングの仕方がありそうな・・・と思ってしまうのですが、これが最善の方法なのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
Perlの質問:行と列を入れ替え...
-
perlについて
-
openした後、closeしないでプロ...
-
Perl 特定のフォルダ以外削除
-
perl LWPでURLにアクセスした時...
-
perlをバージョンアップしたら...
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlのrequireの動き方について...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ドラッグ & ドロップでのド...
-
Javascriptを使ってQRコード読...
-
JavaScriptでtabindexの変更っ...
-
SQLのmaxで求めた値を変数に代...
-
Selenium Basicの件
-
<input>のvalue値をプルダウン...
-
struts selectbox optionsColle...
-
javascriptの計算結果をvalue=""に
-
リスニング問題のプログラミン...
-
パソコンで動くjavascriptがス...
-
メールを送信するボタンでOutlo...
-
【お問い合わせフォーム】プル...
-
jquery.csv2table.jsに検索窓
-
IndexedDB を使ってファイルア...
-
サイト内のデータを絞り込んで...
-
WebbrowserよりHTMLのValue値を...
-
inputタグ内にあるid属性の意味?
-
複数対応できるチェックボック...
-
Doctrineのjoinについて
-
チェックボックスで得た複数回...
おすすめ情報