• ベストアンサー

Readparseを用いてチェックボックスの値を間単に取得したい

mauraの回答

  • ベストアンサー
  • maura
  • ベストアンサー率46% (48/104)
回答No.1

CHECKBOX の名前が foo とし それを@foo に入れる方法 require 'cgi-lib.pl'; &ReadParse; my @foo = split("\0",$in{'foo'});

関連するQ&A

  • チェックボックスの値だけが受信できません

    フォームメールのチェックボックスで、ユーザーの選択した値が受信メールに反映されず、困っています。 アドバイスを宜しくお願い致します。 ■HTML(抜粋) <input type=checkbox name=color value="赤">赤 <input type=checkbox name=color value="青">青 <input type=checkbox name=color value="白">白 ■CGI(抜粋) # 連想配列に格納 &ReadParse(*data); $color = $data{'color'}; # sendmail open(MAIL, "| $sendmail -t"); $mail .= "好きな色=$color\n"; # まとめて日本語変換 &jcode'convert(*mail,'jis'); # メール送信 print MAIL $mail; 上記のように記述してメールを受信すると、  好きな色= と、肝心の値の部分が空欄になってしまいます。 チェックボックス以外のテキスト入力やラジオボタンの値はメールにもちゃんと反映されています。 同じ内容のフォームメールをFLASHでも作りましたが、FLASHの方ではチェックボックスの値も全て表示できました。  好きな色=赤,白 なぜHTMLの方だけ値を拾えないのでしょうか? HTMLのnameをcolorという同じグループ(?)でくくっているからでしょうか? 送信後の処理以外はFLASHのCGIスクリプトと同じものなのですが・・・。 希望としては、チェックボックスで複数選択した値をカンマでつなげたまま受信したいと思っています。 CGIの勉強は始めたばかりなので、もしかしたらとても初歩的なところでつまづいているのかもしれませんが、アドバイスをどうぞ宜しくお願いいたします。

    • ベストアンサー
    • Perl
  • チェックボックスの値を(1,0)のようにすべて送信する方法

    formをsubmitすると、チェックボックスの値は、 チェックされた項目のvalue値が配列の形で送信されますよね。 たとえば、 <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="111" CHECKED> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="222" CHECKED> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="333" CHECKED> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="444"> <INPUT TYPE="CHECKBOX" NAME="C_BOX" VALUE="555" CHECKED> だと、 [111,222,333,555] のように。 今回は、表形式でデータを表示し、 チェックされた行の、他の列の値(フィールド)も取得したいのです。 他の列のフィールドは、チェックされていない行でも入力されている可能性があります。 そうすると、そのフィールドの値も配列にして送ってしまうと、 チェックボックスの値と数が合わなくなり、横方向での関連付けが出来なくなってしまいます。 なので、チェックボックスの送信値を、配列の要素数は全件で、 チェックされたかされていないかということが分かるように することは不可能でしょうか? JavaScriptは規約により、使うことが出来ない状況で困っています(><) 何か案があれば教えてください。

    • ベストアンサー
    • HTML
  • チェックボックスで取得した値をメールに送信する

    PHPでアンケートフォームを作っています。 まず、アンケートフォームでチェックボックスを、使用しました。 複数選択されたチェックボックスの値は、name属性に配列を使いactionでとんだ先の確認ページに表示させることができました。それには、for文で表示させました。 そこから、for文で取得した値をメールに送信させるにはどうしたらよいのでしょうか? どなたか、ご教授おねがいします。 質問の仕方が分かりづらかったら、申し訳ありません。

    • ベストアンサー
    • PHP
  • チェックボックスの値の取得

    初歩的なことがわかりません。 チェックボックスをクリックしたときに、そのチェックボックスの値(Value)を取得する方法をアドバイス下さい。 <SCRIPT language=JavaScript> function test() alert(★)←この辺をうまく書きたい。 </SCRIPT> <INPUT TYPE="CHECKBOX" NAME="mycheck" VALUE="玄関" onclick="test()">玄関<BR> <INPUT TYPE="CHECKBOX" NAME="mycheck" VALUE="トイレ" onclick="test()">トイレ<BR> 「玄関」をクリックすると「玄関です」とalert 「トイレ」をクリックすると「トイレです」とalert 他のチェックボックスにチェックが入っているかは無視。クリックしたチェックボックスのvalueをalert。 下記質問の作業の初めの段階でつまづいています。 (^^; http://www.okweb.ne.jp/kotaeru.php3?q=387758

  • チェックボックスのperlでの値の渡し方

    perlに限らず、CGIもJavascriptも初心者なのにHPでアンケートを作ろうとしている者です。機能はアンケートの末尾の「確認」を押すとCGIの“確認画面”が表示され、その後「送信」で記述内容がメール送信されるというものです。複数回答があるチェックボックスのperlでの値の渡し方を教えてください。症状として以下の様に記述した場合、AとCにチェックをすると「C」しか受け取れません。ちなみにチェックボックスに規定以上の数(例えば「最大2つまで回答可」みたいな)がチェックされたら瞬時にアラートが出るようにするJavascriptを使っていますので“name”は同一にしたいのですが。 ★CGIの記述 → $FORM{'test'} ★HTMLの記述↓ <INPUT type="checkbox" name="test" value="A">A <INPUT type="checkbox" name="test" value="B">B<INPUT type="checkbox" name="test" value="C">C 「配列変数」とやらが必要らしいのですが、どんな記述にすれば良いのかサッパリです。

    • ベストアンサー
    • Perl
  • チェックボックスのチェックした項目の名前を取得したいです。

    チェックボックスのチェックした項目の名前を取得したいです。 HTML+Javascript+CGIでアンケートフォームを作っています。 送信ボタンを押したときに確認画面を表示させたいのですが、チェックボックスの項目をどう扱って良いのかわかりません。 性別を選択するラジオボタンの値の取得(男をチェックしたか、女をチェックしたか)は sex = document.mailform.sex[0].checked ? document.mailform.sex[0].value : document.mailform.sex[1].value このように出来るとのことですが、チェックボックスはどうしたら良いのでしょうか? 好きな食べ物を聞くチェックボックスで、選択項目に ・リンゴ・バナナ・ミカン・イチゴ を用意し、チェックされた項目を 好きな食べ物:リンゴ イチゴ の用に出力したいと思っています。 よろしくお願いします。

  • チェックボックスの複数選択の値をCGIで取得する方法

    お世話になります。 表記の通りチェックボックスで複数選択するHTMLを次のように作成しました。 ======== 送信元HTML ========= <FORM action='******.cgi' method='POST'> <INPUT type='checkbox' name='Q6_ans' value='1'> <INPUT type='checkbox' name='Q6_ans' value='2'> <INPUT type='checkbox' name='Q6_ans' value='3'> <INPUT type='checkbox' name='Q6_ans' value='4'> <INPUT type='checkbox' name='Q6_ans' value='5'> <input type=submit value='実  行'> </FORM> これを受取るPerl-CGIのコードをこうしました。 ======== 受信するcgi ========= my @files_2 = split(/\0/,$in{'Q6_ans'}); for($i=0;$i<=4;$i++){ if($files_2[$i] ne ""){$d[6].=$files_2[$i]." , ";} } 例えばチェックボックスで2と3を選ぶと$d[6]の値は「2 , 3 ,」となるつもりだったんですが、意に反し「23 ,」となります。 配列の値を調べると$files_2[0]に「23」が代入されて、$files_2[1]から$files_2[4]は空です。つまり「split(/\0/,$in{'Q6_ans'})」での分割がされていないようなのです。 何が原因で、どこが間違いなのでしょう。チェックボックスの値は\0で区切られていると思っているのですが、間違いでしょうか?

  • チェックボックスの値のチェック

    プログラム初心者です 質問1 HTMLのフォームのチェックボックスから配列でphpに値を渡したときにチェックした値が1個しかなかった時には配列として受け取っているのでしょうか?それとも一個しかない場合は変数として受けとっているのでしょうか? 現状ではissetで調べて値がある場合にはその配列をforeachで取り出して実行しています(実際にやってみたら値1個でも動いていますが気になったので教えてください) 値のチェックはissetのみでいいでしょうか? 質問2 MySQLの方は、チェックの個数分のレコードを削除するために繰り返し処理の中でsqlを最大20回発行するのはダメな処理ですか?(チェック1個の場合は1回のみsqlを発行しています) 一般的に使われているならこれでいこうと思います よろしくお願いします

    • ベストアンサー
    • PHP
  • チェックボックスのvalue値の取得について

    過去の質問にいくつか似たようなものはあったのですが、解決出来ませんでしたので質問させて頂きます。cgiでページを作成しています。今回処理したい内容は、一覧表の複数のチェックボックスから、オンになっているvalue値を取得し、その値に一致するナンバーを使って別のファイルのデータを削除するといった処理です。 == html一部内容 == <form action='update.cgi' method='POST'> <input type='checkbox' name='del_0' value='0'> <input type='checkbox' name='del_1' value='1'> <input type='checkbox' name='del_2' value='2'> <input type='submit' name='submit' value='削除'> </form> == update.cgiの一部内容 == for($loop=2,$loop>=0,$loop--) { $del[$loop]=$in{'del_$loop'}; } データ数が多いのでループさせてすべてのチェックボックスのvalue値を取得したいと思っています。チェックボックスがオフの場合の扱いがいまいち分かっていません。一つずつ例えば $del_1=$in{'del_1'}; と代入していくとonのもののみ取得できます。しかしループにするとonの値も変数に入りません。 どんな方法でも良いので、すっきりとチェックボックスのvalue値を変数に取得する方法を教えてください。お願い致します。M(v_v)M

    • ベストアンサー
    • Perl
  • VBA シート上のチェックボックスの値の取得

    (作業環境 windowsXP Excel2007 作業対象のブックは.xls) シート上に1ブックにつき3000個ほどのチェックボックスがあります。 このブックが現在約1000個、すでに配布・回収されております。 これからチェックボックスの選択状況やセルに入力された値をマクロで収集するのです。 大半のチェックボックスにはすでに「リンクするセル」の設定がされており、そのセルの値を参照すればチェック状態の取得は容易なのですが、 最初にこのブックを作った方が一部のチェックボックス群(3000個中500個程度)にリンクの設定をするのを忘れていたのです。 このリンク設定のされていないチェックボックスの値の取得についてご質問です リンクセルの設定をするのであれば sub a() ActiveSheet.Shapes("Check Box 1").Select Selection.LinkedCell = "$A$1" ・ end sub でいいのでしょうが、これだとselectのはずみで チェックボックスがTrueになってしまします。 リンクせずに直接チェックボックスの値をブール型で取得しようと思い dim a as boolern a = Activesheet.checkboxes(1).value としましたが、ためしに別ブックのシート上に1つだけチェックボックスを作って実行すると、チェック状態にかかわらずTrueが返ります。 checkboxesの使い方がダメなんでしょうか? 求める回答としては (1)上記のやり方でもできるが、間違っている部分がある (2)上記以外のやり方でもっと簡単な(早い)やりかたがある のどちらかのようなアドバイスをいただけると幸甚です。 よろしくおねがいします