• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ラジオボタンで入力し、その結果をCGIで表示するプログラム)

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

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

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

  • ベストアンサー
  • 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