CGI チェックボックスの修正方法について

このQ&Aのポイント
  • kentさんのmsgenq v1.81を使用して、CGIチェックボックスを使用したいと考えています。
  • プルダウン(初期)からチェックボックスに変更するため、Q&Aを参考に変更を行いましたが、複数にチェックをした場合に先頭のチェック項目のみが反映される状況です。
  • kentさんのQ&Aに質問しても回答が得られなかったため、どこを修正すれば良いのかわからない状況です。
回答を見る
  • ベストアンサー

CGI チェックボックス

CGI チェックボックス kentさんのmsgenq v1.81でチェックボックスを使いたいと思っています。 プルダウン(初期)からチェックボックスに変更するため 以下の変更を行いました。 このQ&Aを参考に http://www.kent-web.com/support/old/61/0412.html 変更前スクリプト http://myangus.net/1.txt 変更後スクリプト http://myangus.net/2.txt 変更後ですが チェックボックスを表示することができましたが Q&Aと同じ状況(複数にチェックをした場合、先頭のチェック項目のみが結果に反映し、先頭以降のチェックは無視される状況)です。 Q&A通り修正したいのですが バージョンが異なることと自身の知識不足のため どこを修正すればよいのかわかりません。 kentさんのQ&Aにて質問させていただきましたが よい回答が得られなかったため こちらで質問させていただきました。 Q&Aの回答では、この辺りを修正しているようですが どうなのでしょうか・・・ http://myangus.net/3.txt どなたか教えていただけないでしょうか。 よろしくお願いいたします。

  • CGI
  • 回答数1
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

 nameが同じデータをハッシュに入れると、上書きされてしまいますから、順次、配列(リスト)に入れるか、$hash{'hoge'} .= $data;とつなげていくかしないとだめです。  スクリプトはちらっと拝見しましたが、その部分ではなく受け取ったデータの格納部分の変更が必要です。

myangus
質問者

お礼

貴重な情報感謝いたします。 お恥ずかしい質問ですが格納部分はどの辺りでしょうか。 調べれば調べるほど深みにはまっているようです。 この辺なのかなぁと挙げてみましたが・・・ どうなんでしょうか。 sub decode { my $buf; $post_flag = 0; if ($ENV{'REQUEST_METHOD'} eq "POST") { $post_flag = 1; read(STDIN, $buf, $ENV{'CONTENT_LENGTH'}); } else { $buf = $ENV{'QUERY_STRING'}; } foreach ( split(/&/, $buf) ) { my ($key, $val) = split(/=/); $val =~ tr/+/ /; $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg;

myangus
質問者

補足

申し訳ございません。 利用が初めてなものでお礼欄に質問してしまいました。

関連するQ&A

  • CGIでチェックボックスのエラーチェック

    下記のような感じで チェックボックスをいくつか配置し、CGIで動かしています。 それぞれの質問に関して未選択がある場合、 メッセージボックスで「未選択があります」と表示させたいです。 できればjavascriptでなくCGIでやりたいです。 どのようにコードを書けばいいですか? ためしに以下のように書いてみましたがだめでした。 ・・・ elsif ($q1 eq "" && $q2 eq "") { &error($error = "すべての項目に回答して下さい"); } ・・・ お願いいたします! <form name="q1" action="test.cgi" method="POST"> Q1 <input type="radio" name="q1" value="q1_a"> A <input type="radio" name="q1" value="q1_b"> B <input type="radio" name="q1" value="q1_c"> C Q2 <input type="radio" name="q2" value="q2_a"> D <input type="radio" name="q2" value="q2_b"> E <input type="radio" name="q2" value="q2_c"> F </form>

    • ベストアンサー
    • CGI
  • チェックボックスのCGIへの値の受け渡し方

    チェックボックスで複数回答があった場合のデータの受け取りをどうしても分からないので教えてください。 別の人が作ったCGIを改造(今回の複数回答可の部分を)しています。以下のような記述だとvalue値が取れず、空白になっています。 【HTML】(チェックを2つ以上出来ないようにするためにJavascriptで制限をかけています。nameを同じにするやり方にしています。) <INPUT type="checkbox" name="q1" value="赤" onclick="return limitation(this,2)">赤<br> <INPUT type="checkbox" name="q1" value="黄" onclick="return limitation(this,2)">黄<br> <INPUT type="checkbox" name="q1" value="青" onclick="return limitation(this,2)">青<br> 【CGI】 use CGI qw(:standard); @check1=param("q1"); $result1=join(',',@check1); print "<td width=300><font size=2>$result1</font>&nbsp;</td>\n"; このPerlは@check1にq1のチェックが付いたものが格納されていると認識しています。では、どうしたらそれをとりだせるのでしょうか?初心者で申し訳ありません。やり方にこだわらず、今回の目標は (1)チェックボックスに規定(2つ)以上のチェックが入るとアラートでチェックしすぎた瞬間に知らせてくれる (2)2つチェックされた場合の値の取出しを可能にする。

    • ベストアンサー
    • Perl
  • プルダウンとチェックボックスの連動

    はじめましてよろしくおねがいします。 やりたいことはプルダウンのメニューの中身を活性したり非活性に したいのですが、どのようにやるのか想像がつきません。 以下にソースを貼り付けました。 チェックボックスにチェックされた場合はメニューの中身の■Yahoo!をリンクさせない様にしたいです。 チェックが外れたときはメニューの中身はすべてリンクで表示します。 現状はすべてリンクしかできていないです。 チェックボックスとの連動の方法、メニューの中の非活性の方法を教えてください。よろしくおねがいします。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- // プルダウンメニュー flag = false; function pullDown() { if(flag) ID.style.visibility = "hidden"; else ID.style.visibility = "visible"; flag = !flag; } //--> </SCRIPT> </HEAD> <BODY bgcolor="#ffffff"> <A href="javaScript:pullDown()">メニューを表示する</A><BR> <DIV id="ID" style="position:absolute;visibility:hidden;"> <A href="http://www.yahoo.co.jp/">■Yahoo!</A><BR> <A href="http://auctions.yahoo.co.jp/">■Yahoo! Auctions</A><BR> </DIV> <BR><BR><BR><BR><BR><BR> <FORM> <INPUT TYPE ="checkbox">ここにチェックを入れるとプルダウンの■Yahoo!のみ非活性にしたい。 </FORM> </BODY> </HTML>

  • 簡単なチェックをするページを作りたい

    フォームのプルダウンメニューを使って簡単なチェックをするページを作りたいと思っています。 ネットでしらべつつ一応希望どおりに動くようになりました。 プルダウンメニューは2つあり、それぞれを選択すると隣のテキストボックスにチェック結果を表示されるようにしました。 <script language="JavaScript"> <!-- function check(){ kazu = document.form.kazu.value; iro = document.form.iro1.value; if (kazu == 2) { if (iro == 2) { messe = "s"; } else { messe = ""; } }else if (kazu == 1) { if (iro == 2) { messe = "c"; } else { messe = ""; } } else { messe = ""; } document.form.pri1.value = messe; } ↑ものすごく簡略化してます kazuのプルダウンは1つだけですが、iroのプルダウンは複数あります。 条件はみな同じです。 いま完成したスクリプトではiro1のプルダウンメニューを変更したらその隣のテキストボックス(pri1)に表示させることができます。 それをiro2を変更したらiro1と同じ条件でテキストボックス(pri2)に表示させることは可能でしょうか? コピーペーストして変数を変えればできるのでしょうが、もっと簡略化する方法があれば教えてください。 説明不足なところがあり申し訳ございません

  • プルダウンメニューに連動するチェックボックスのdisable切り換え

    こんにちわ。 表記の件ですが、プルダウンメニューに連動するチェックボックスのdisableを切り換えたいと思っているのですが、なかなか上手くいきません・・・。 例えばプルダウンメニューにおいて ・食べ物 ・生き物 ・果物 ・穀物 というようなメニューがあり、さらにチェックボックスとして ・お米 ・りんご ・さかな ・みかん というチェックボックスがあるとします。 この場合、[食べ物]を選択すると全てが選択できるようになり、[果物]を選択すると[りんご]と[みかん]以外は無効(チェックボックスの選択ができない状態)となるスクリプトを作成したいということです。 もし、先行していずれかのチェックボックスが有効になっていて、プルダウンメニューを切り換えた場合はアラートと同時にチェックボックスをリセットするようできると尚素敵です。 皆様のお知恵を拝借できればと思います。 何卒お力添えいただければ幸いです。

  • KENT-WEBのClipMailでのチェックボックスについて質問です

    KENT-WEBのClipMailでのチェックボックスについて質問です。 KENT-WEBで無料配布されているClipMailのVer1.1を使用してメールフォームを設置しているものです。チェックボックスについて教えてください。 チェックボックスにチェックを複数入れ確認画面へ遷移・送信すると、チェックを入れた分のvalue値が、半角スペースを入れた横並び状態で羅列されます。(以下イメージ) チェック項目 | イベントA イベントB イベントC しかし、これだと見づらいので、半角スペースではなく、value値ごとに改行されるように表示させたいと思っています(以下イメージ)        | イベントA チェック項目 | イベントB        | イベントC どこを、どういじればよいのでしょうか?

    • ベストアンサー
    • CGI
  • エクセル2002でチェックBOX

    会社でエクセル2002を使用しています。 今度より機能的なシートにしたいと思ってまして、チェックBOX を機能として採用したいと思っています。 一応BOXはでてきて、チェックBOXの名前の変更もできるのですが チェックを入れることができません。 どのような方法でチェックBOXにチェックが入れれるようになるのでしょうか? ネットなどで参考としてみているのですが、どうもエクセル2003で ないとチェックBOXの方法が見つからなかったので、質問させてもらいました。

  • 2つのプルダウンボックスの連動について

    <SELECT><OPTION></OPTION></SELECT>タグで作るプルダウンボックスについて質問です。 AとBの二つのプルダウンボックスを設置し、Aで選択された項目に合わせて、Bの表示項目を変更させたいと思っています。 この2つのプルダウンボックスを連動させる方法について、JAVAスクリプトを使った方法を知りましたが、利用者がブラウザでJAVAを切っていた場合は正常に機能しないのでしょうか? 利用者がブラウザでJAVAを切っていた場合にも対応できる連動の方法があればぜひ教えてください。

    • ベストアンサー
    • HTML
  • チェックボックスとボタンの組み合わせによってリンク先を決める

    当方、script等にはまったく持って初心者です。 以下の仕様のJavascriptが作りたいのですが、全然わからないのです・・・。 チェックボックスAとボタンAを押す・・・・1のリンク先へ チェックボックスBとボタンAを押す・・・・2のリンク先へ チェックボックスCとボタンAを押す・・・・3のリンク先へ チェックボックスAとボタンBを押す・・・・4のリンク先へ チェックボックスBとボタンBを押す・・・・5のリンク先へ チェックボックスCとボタンBを押す・・・・6のリンク先へ 見た目的にはこんな感じです。 ------------------- □暇なときに回答ください □困ってます □すぐに回答ほしいです [Aボタン][Bボタン] ------------------- という感じです。 チェックボックスは複数選択する予定はありません。 (なので、チェックボックスではなく、ラジオボタンでも可です)。 チェックボックスを複数選択しない・・というとこへのツッコミはなしでお願いします^^; 何卒よろしくお願いいたします。

  • テキストボックスの内容でチェックボックスの既定値

    下記質問の続きです。 http://okwave.jp/qa/q8186736.html Accessで、 チェックボックスにチェックを入れることで テキストボックスに文字を表示させています。 そのフォームをいったん閉じると、 テキストボックスには 前回チェックボックスで入力した文字が反映されているのですが チェックボックスのチェックがすべて外れてしまっています。 フォームを開いたとき、 テキストボックスの内容によって、 配置したチェックボックスにチェックを入れたいです。 テキストボックスに 「A C」 と入っていたら ■A □B ■C □D □E としたいです。 (開いたあとは、また別の所にチェックを入れたり外したりします) チェックボックスのプロパティ「既定値」のところに IF([テキストボックス] like "*"&"A"&"*",ture,false) などとしてみたのですがうまういきませんでした。 ご教授お願いいたします!

専門家に質問してみよう