- ベストアンサー
ラジオボタンで入力し、その結果をCGIで表示するプログラム
- ラジオボタンで入力した結果をCGIプログラムで表示する方法を教えてください。
- HTMLとC言語を使用して、ラジオボタンで選択した結果を文字列として出力する方法を教えてください。
- CGIプログラムでGETメソッドを使用して、ラジオボタンで選択した結果を出力する方法を教えてください。
- みんなの回答 (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/<>/<\;>\;/g; $form{$l_set}=$value; } }
お礼
すいません、submitをつけるのを忘れていました。 あと、valueでyes,noも変更していただいて感謝しております。 perlは使ったことがないのとgccのクロス開発環境でやっておりますので、 C言語でやらないと実行が出来ないのです。 でも、参考にはなりました。pipipi523さん、ありがとうございます。