ラジオボタンで入力し、その結果をCGIで表示するプログラム

このQ&Aのポイント
  • ラジオボタンで入力した結果をCGIプログラムで表示する方法を教えてください。
  • HTMLとC言語を使用して、ラジオボタンで選択した結果を文字列として出力する方法を教えてください。
  • CGIプログラムでGETメソッドを使用して、ラジオボタンで選択した結果を出力する方法を教えてください。
回答を見る
  • ベストアンサー

ラジオボタンで入力し、その結果をCGIで表示するプログラム

htmlで <html> <head> </head> <body> <form method="get" action="question.cgi"> <table width="50" height="" border="1" bordercolor="black" bgcolor="white" cellSpacing="0" cellpadding="5"> <tr><th>/</th><th>yes</th><th>no</th></tr> <tr><th>1</th><td><input type="radio" name="char1"></td> <td><input type="radio" name="char1"></td></tr><br> <tr><th>2</th><td><input type="radio" name="char2"></td> <td><input type="radio" name="char2"></td></tr><br> <tr><th>3</th><td><input type="radio" name="char3"></td> <td><input type="radio" name="char3"></td></tr><br> <tr><th>4</th><td><input type="radio" name="char4"></td> <td><input type="radio" name="char4"></td></tr><br> </table> <input type="button" value="送信" ><input type="reset" value="リセット"><br> </form> </body> </html> と書き、C言語でCGIを書き、ラジオボタンを押して送信ボタンを押すと 1:yes,2:no,3:no,4:yesなどと文字列で出力したいのです。 getメソッドがいいのかpostメソッドいいのかも教えていただければうれしく思います。 (この質問ではgetメソッドを使っていますが、あまり気にしないでください)

noname#77475
noname#77475
  • CGI
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • pipipi523
  • ベストアンサー率40% (148/365)
回答No.1

・文字列を渡したい場合はvalueに文字列をセットします。 ・データを送るボタンはinput type="submit" こんな感じでしょうか。 getの場合はurlに?xxx=xxx$xxx=xxxと渡すデータが全部出てしまうのでpostの方が良いと思います。 <html> <body> <form method="get" action="question.cgi"> <table width="50" height="" border="1" bordercolor="black" bgcolor="white" cellSpacing="0" cellpadding="5"> <tr><th>/</th><th>yes</th><th>no</th></tr> <tr><th>1</th><td><input type="radio" name="char1" value="yes"></td> <td><input type="radio" name="char1" value="no"></td></tr><br> <tr><th>2</th><td><input type="radio" name="char2" value="yes"></td> <td><input type="radio" name="char2" value="no"></td></tr><br> <tr><th>3</th><td><input type="radio" name="char3" value="yes"></td> <td><input type="radio" name="char3" value="no"></td></tr><br> <tr><th>4</th><td><input type="radio" name="char4" value="yes"></td> <td><input type="radio" name="char4" value="no"></td></tr><br> </table> <input type="submit" value="送信" ><input type="reset" value="リセット"><br> </form> </body> </html> question.cgi #!/usr/bin/perl &form_dec;#フォームデータの入力(サブルーチンにしてみました) print "Content-type: text/html\n\n"; print "<html><body>"; foreach (keys %form){ print $_."=".$form{$_}."<br>\n"; } print "</html></body>"; #フォームデータの取得 sub form_dec { my($method); my($query,@abs,$l_set,$value); $method = $ENV{'REQUEST_METHOD'}; #method情報を環境変数から読み込む $method =~ tr/A-Z/a-z/; if($method eq 'post'){ read(STDIN,$query,$ENV{'CONTENT_LENGTH'}); #postの場合標準入力から値を読む }else{ $query=$ENV{'QUERY_STRING'}; } #getの場合環境変数に値が入っている @abs = split(/&/,$query); foreach (@abs) { ($l_set,$value) = split(/=/,$_); $value =~ tr/+/ /; $value =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C", hex($1))/eg; $value =~ s/<!--(.|\n)*-->//g; $value =~ s/<>/&lt\;&gt\;/g; $form{$l_set}=$value; } }

noname#77475
質問者

お礼

すいません、submitをつけるのを忘れていました。 あと、valueでyes,noも変更していただいて感謝しております。 perlは使ったことがないのとgccのクロス開発環境でやっておりますので、 C言語でやらないと実行が出来ないのです。 でも、参考にはなりました。pipipi523さん、ありがとうございます。

関連するQ&A

  • ラジオボタン選択でtextfieldをアクティブにするには?

    ■下記サンプルソースのラジオボタン「はい」を選択するとtextfieldがアクティブになるJavaScriptがわからず困っております。教えて頂けないでしょうか。 (ページ開いた際は「いいえ checked」でtextfieldはグレーで入力無効) 可能であればシンプルなソースで「最新のWinIE、MacSafari」に対応していると非常に助かります。先輩方よろしくお願いします。 <form name="form1" method="post" action=""> <table> <tr> <td>■「はい」を選択すると、textfield(カテゴリー1~4)がアクティブになる</td> </tr> <tr> <td> <input name="radiobutton" type="radio" value="radiobutton">はい  <input name="radiobutton" type="radio" value="radiobutton" checked>いいえ </td> </tr> <tr> <td> カテゴリー1<input name="textfield" type="text" size="30" maxlength="30"> <br> カテゴリー2 <input name="textfield22" type="text" size="30" maxlength="30"> <br> カテゴリー3 <input name="textfield32" type="text" size="30" maxlength="30"> <br> カテゴリー4 <input name="textfield42" type="text" size="30" maxlength="30"> </td> </tr> </table> </form>

  • ラジオボタン選択で「複数ラジオボタン」をアクティブにするには?

    ■下記サンプルソースのラジオボタンの「はい」を選択すると複数のラジオボタンがアクティブになるJavaScriptがわからず困っております。教えて頂けないでしょうか。 (ページ開いた際は「いいえ checked」で複数ラジオボタンはグレーで選択無効) 用途はアンケートフォームです。 可能であればシンプルなソースで「最新のWinIE、MacSafari」に対応していると非常に助かります。先輩方よろしくお願いします。 <form name="form2" method="post" action=""> <table> <tr> <td>■「はい」を選択すると、ラジオボタン(カテゴリー1~4)がアクティブになる。 </td> </tr> <tr> <td> <input name="radiobutton" type="radio" value="radiobutton">はい <input name="radiobutton" type="radio" value="radiobutton" checked>いいえ </td> </tr> <tr> <td> <input name="radiobutton" type="radio" value="radiobutton">カテゴリー1 <input name="radiobutton" type="radio" value="radiobutton">カテゴリー2 <input name="radiobutton" type="radio" value="radiobutton">カテゴリー3 <input name="radiobutton" type="radio" value="radiobutton">カテゴリー4 </td> </tr> </table> </form>

  • ラジオボタンでの表示の切替方法

    2つのラジオボタンの切替によって、表示の切替を行いたいです。 例えば、Aを選択すると(1)の入力フォームが表示され、Bを選択すると(2)が表示したいです。初期表示はAが選択された時と同じ内容となります。 <table align="center" border="0" cellpadding="0" cellspacing="0"> <tr><td><form name="Quick1"> <tr><td>選択</td> <td> <input type="radio" name="A" value="1" checked>A  <input type="radio" name="B" value="2">B  </td></tr> <tr> <td>(1)</td> <td> <input type="text" size="6" maxlength="5" name="text1" value="">- <input type="text" size="6" maxlength="5" name="text2" value="">- <input type="text" size="6" maxlength="5" name="text3" value=""> </td></tr> <tr> <td>(2)</td> <td> <input type="text" name="text7" size="43" value=""> </td></tr> </table></form></td></tr></table> すみませんが、よろしくお願い致します。

  • ラジオボタンを一括で操作する方法を教えてください。javascript

    下記のようにフォームがあります。 チェックボックスをクリックして始めて、 同列のラジオボタンが選択できるようにしたいと考えております。 現在は、質問1のみですが質問の数がその下に増えていくと考えた場合、(例えば質問10まであると仮定して考えてください。)どのようにスクリプトを書いていけば、スマートになるかお知恵を貸していただけませんでしょうか? よろしくお願いいたします。 <form name="form1"> <table><tr> <th><input type="checkbox" name="q1_1" value="" onClick="quetion()">質問1</th> <td><input type="radio" name="q1_1a" value="a" disabled ></td> <td><input type="radio" name="q1_1a" value="b" disabled ></td> <td><input type="radio" name="q1_1a" value="c" disabled ></td> </table></form>

  • ラジオボタンを使って文字を入力するには?

    下記のようなプログラムで、 ラジオボタンでAMかPMにチェックを入れると、 下の表の欄に●が入るようにしたいのですが、 どうしたらよいのでしょうか。 どうかよろしくお願いします。 午前<input type="radio" name="ra1"> 午後<input type="radio" name="ra2"> <table> <tr> <td>名前</td><td>AM</td><td>PM</td> <td>Aさん</td><td></td><td></td> <td>Bさん</td><td></td><td></td> </tr> </table>

  • Yes/No型を使ってアップロード

    はじめまして。 下記にhtmlを書かせていただいてますが、このhtmlの『アップロード』のボタンを押すと 1. データベース『mdb』のYes/No型にチェックが入る 2. Yes/No型にチェックが入ったものはアップロードされる ようにすることはできるでしょうか?また、何か参考になるサイト様などがあれば 教えていただきたいのです。 おわかりになる方、よろしくお願いします。 下記のような↓フォームです。 ---------------------- <table> <TR> <TD> <INPUT type='hidden' NAME='UPDATE_ID' VALUE='1'> <center><INPUT TYPE='submit' VALUE=' アップロード '><br><center> <p></p> </TD> <TD>登録ファイル1</TD></FORM> <FORM ACTION='' METHOD='POST'> <TR> <TD> <INPUT type='hidden' NAME='UPDATE_ID' VALUE='2'> <center><INPUT TYPE='submit' VALUE=' アップロード '><br><center> <p></p> </TD> <TD>登録ファイル2</TD></FORM> <FORM ACTION='' METHOD='POST'> <INPUT type='hidden' NAME='UPDATE_ID' VALUE='3'> <TR> <TR> </FORM> <TR> </table>

  • 複数のテーブルをラジオボタンで背景を変える

    javascriptは、まだ全くの初心者で色々探しながら勉強しています。 過去の質問で動作が似ているものがあったのですが、 複数のテーブルに使えるように変更したいのですが 全くやり方が分かりません。 宜しくお願い致します。 2つのテーブルがあります。 id=AAA と言うテーブルは、今日の天気のラジオボタン id=BBB と言うテーブルは、今日の花粉のラジオボタン だとします。 各テーブル内のラジオボタンが選択されたら、 そのテーブルだけに影響するセルの色変更。 つまり、 AAAのテーブル内のラジオボタン選択時は、AAAのセルの色を黄 BBBのテーブル内のラジオボタン選択時は、BBBのセルの色を赤 にしたいのです。 下記にサンプルコードを書きました。 これだと、AAAのテーブルのラジオボタンをクリックすると BBBのテーブルの背景色がクリアされてしまいます。 どうやって引数を渡していいのか分かりません。 宜しくお願い致します。 <html> <head> <title>test</title> <script type="text/javascript"> <!-- var saveTr; function setBg(rd) { if(saveTr) saveTr.bgColor="white"; saveTr=rd.parentNode.parentNode; saveTr.bgColor="yellow"; } --> </script> </head> <body> <table id='AAA'> <tr><td> 今日の天気 </td></tr> <tr><td> <input type='radio' name='tenki' value='1' onClick="setBg(this);">晴れ<br> </td></tr> <tr><td> <input type='radio' name='tenki' value='2' onClick="setBg(this);">曇り<br> </td></tr> <tr><td> <input type='radio' name='tenki' value='3' onClick="setBg(this);">雨<br> </td></tr> </table> <br> <table id='BBB'> <tr><td> 花粉の量 </td></tr> <tr><td> <input type='radio' name='kafun' value='1' onClick="setBg(this);">多い<br> </td></tr> <tr><td> <input type='radio' name='kafun' value='2' onClick="setBg(this);">普通<br> </td></tr> <tr><td> <input type='radio' name='kafun' value='3' onClick="setBg(this);">少ない<br> </td></tr> </table> </body> </html>

  • フォームタグの中のラジオボタンの選択による制御

    まず、サンプルのHTMLソースを書きます。 <html> <head> <title>プレゼント </title> head> <body> <center> <form method="post" action="https://regist02.smp.ne.jp/regist/Reg2"> table cellspacing="2" cellpadding="5" border="1"> <tr> <td>プレゼント</td> <td> <input type="radio" name="f000016397" value="1"> 希望する<br> <input type="radio" name="f000016397" value="2"> 希望しない<br> </td> </tr> <tr> <td>カラー</td> <td> <input type="text" name="f000009756" value="" maxlength="6"> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="送信"> </td> </tr> </table> </form> </center> </body> </html> この中で、「プレゼントを希望する」のラジオボタンをチェックした場合のみ、下のテキストボックスにカラーが入力できるようにしたいと思います。 「プレゼントの希望をしない」を選択しているのに、テキストボックスに文字が入力されたないように制御することはできるでしょうか?またはデータが送信されないで警告k画面が出る方法でもよいのですが。 宜しくお願いします。

  • フォームタグの中のラジオボタンの選択による制御

    まず、サンプルのHTMLソースを書きます。 <html> <head> <title>プレゼント </title> head> <body> <center> <form method="post" action="https://regist02.smp.ne.jp/regist/Reg2"> table cellspacing="2" cellpadding="5" border="1"> <tr> <td>プレゼント</td> <td> <input type="radio" name="f000016397" value="1"> 希望する<br> <input type="radio" name="f000016397" value="2"> 希望しない<br> </td> </tr> <tr> <td>カラー</td> <td> <input type="text" name="f000009756" value="" maxlength="6"> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="送信"> </td> </tr> </table> </form> </center> </body> </html> この中で、「プレゼントを希望する」のラジオボタンをチェックした場合のみ、下のテキストボックスにカラーが入力できるようにしたいと思います。 「プレゼントの希望をしない」を選択しているのに、テキストボックスに文字が入力されたないように制御することはできるでしょうか?またはデータが送信されないで警告k画面が出る方法でもよいのですが。 宜しくお願いします。

  • javascript ラジオボタン

    javascriptのことで質問させてください。 よろしくおねがいします。 簡単なフォームをテーブルで作成しています。 例えばの例でお願いします。 <form action="" method="post"> <table> <tr> <td>表示/非表示<td> <td><input type="radio" value="1">非表示 <input type="radio" value="2">表示<td> <tr> <!--ここから表示/非表示部分--> <tr> <td>テキスト<td> <td><input type="text"><td> <tr> <!--ここまで表示/非表示部分--> </table> </form> 上記のようなフォームがあったとします。 PHPを使用していまして、 『hoge.html?str=値』 がアドレスとします。 $str=$_GET['str']; $str=1 の時は、はじめは表示 $str=2 の時は、はじめは非表示 $str="" の時は、はじめは非表示 という感じの内容でラジオボタン選択すると表示/非表示されると言うものを作成したいと思っています。 説明がわかりにくいと思いますがどうぞよろしくお願いします。