• ベストアンサー

ifの条件式

お世話になります。初歩的な質問とは思いますが、どうぞよろしくお願いします。 HTMLでのフォームの一部に次のようなラジオボタンの記述をしています。どちらか選んでCGIに渡し、「試験1」を選んだなら処理1を、「試験2」を選んだなら処理2を行いたいのですが、ifの条件式の書き方(ラジオボタンで選んだ方の値を受け取る変数の書き方)が分かりません。 ----HTML----------------------------------------- <input type="radio" name="test" value="テスト1"> 試験1 <input type="radio" name="test" value="テスト2"> 試験2 ----CGIスクリプトの一部-------------------------- if( ? ? ? =="テスト1"){ 処理1 }else{ 処理2 } ----------------------------------- ifの条件式の書き方を教えて下さい。 よろしくおねがいします。

noname#8789
noname#8789
  • Perl
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • moon_piyo
  • ベストアンサー率60% (88/146)
回答No.2

CGI.pm利用の場合... use CGI; $query = new CGI; : : if ($query->param('test') eq "テスト1") { } else { } cgi-lib.pl利用の場合... require "cgi-lib.pl"; ReadParse(*s); : : if ($s{'test'} eq "テスト1") { } else { } という感じ?

noname#8789
質問者

お礼

ご回答どうもありがとうございます! ご丁寧にサンプルまで書いていただき、本当に助かりました。eqを使うのですね。==だと思っていました(^^; 無事解決できました。ありがとうございました。

その他の回答 (1)

回答No.1

条件式の『???』の部分が分からないということでよろしいでしょうか。 そうでしたら条件式の前に、送信されたデータをプログラムで扱えるようにスカラー変数に格納します。 その方法の一つとして、参考URLの第3項「フォームからのデータを受け取る」が参考になるかと思います。

参考URL:
http://www.futomi.com/lecture/form/cgilib.html
noname#8789
質問者

お礼

ご回答ありがとうございます! >条件式の『???』の部分が分からないということでよろしいでしょうか。 はい、『???』も含めての条件式の書き方が分かりませんでした。書き方が間違っているようで、処理1しか実行されていませんでした。 参考URLどうもありがとうございます。無事解決できました!

関連するQ&A

  • ラジオボタンとif文

    HTML、JavaScript とも初心者です。 どのラジオボタンが選択されているかを、if文で調べる方法を教えてください。 たとえば、HTMLで <input type="radio" name="maekausiroka" value="mae">前 <input type="radio" name="maekausiroka" value="usiro">後 としたとき、 JavaScript の if 文でどちらが選択されているかを調べたいとき、どのようにコーディングするのか教えてください。 よろしくお願いします。

  • Valueの値によってActionの送信先を振り分けるには?

    ユーザーさんに入力してもらうフォームは1つにして、入力された値によって、AのCGIで処理させたりBのCGIで処理させたりできたら良いと思っています。 すでにHTMLでフォームは作成しているので、このHTMLをCGIで出力させて、そこでIF文を加える事によって、フォームの送信先を2つに振り分ける事はできるでしょうか? HTMLをCGIで出力させるCGIは見た事がるのですが、フォームの送信先をどのように振り分けたら良いのか分かりません。 例えば、フォーム中に下記の選択肢が」あるとします。 <input type=radio name=sentaku value="0" checked> <input type=radio name=sentaku value="1" > 上を選択(value="0")したらAのCGIへフォーム内容を送信。 下を選択(value="1")されたら、BのCGIへフォーム内容を送信するようにしたいです。 このような処理は、簡単にできるのでしょうか? それとも難しいですか? 仮のHTMLのソースを記述しておきます。 <html> <head> <title>テスト</title> </head> <body> <form action=**** method=post> ◆Aへ <input type=radio name=sentaku value="0" checked><br> ◆Bへ<input type=radio name=sentaku value="1" ><br> <input type=submit value="送信する"> </form> </body> </html> 上記のソースは仮なので、実際使用しているソースとは違います。 HTMLをCGIで出力するCGIを使用したり、このソースを改造する事でactionの送信先を振り分ける事はできますか? JavaScriptを使用しない方法を希望します。 アドバイスをお願い致します。

  • CGI内での条件分岐について教えてください。

    CGI内での条件分岐について教えてください。 買い物カートCGIの中で下記のラジオボタンの選択において入力フォームを表示・非表示に切り替える質問をしたばかりですが、 <input type="radio" value="1" onclick="func1()" name="gift" checked />1ヶ所 <input type="radio" value="2" onclick="func2()" name="gift" />3ヶ所 <input type="radio" value="3" onclick="func3()" name="gift" />5ヶ所 今度は入力後の確認画面にて上記で選択された内容によって。。。 value1の場合は1ヶ所分の発送先住所、value2の場合は3ヶ所分の発送先住所・・・ と言った感じで表示をさせたいのですが、条件分岐に関してどのようにしたら良いのか分からず質問をさせて頂きます。 require "cgi-lib.pl"; ReadParse(*input_data); if ($input_data{'gift'} eq "1") {  ※value1で入力した1件分の発送先住所 } elsif ($input_data{'gift'} eq "2") {  ※value2で入力した3件分の発送先住所 } else {  ※value3で入力した5件分の発送先住所 } とか、試してみましたがだめでした(泣 CGI(Perl)に関しては初心者的で少々初心者レベルで触る程度の技術レベルです(汗 どうしたら良いのか教えてください。 思い当たる点は、そもそも条件式の中にある"gift"はどこかで指示を出さないとCGIの中で認識されていないのでは?とも思っています。 実際に上記の例でカートの確認ページを表示すると、 if ( eq "1") { } else ( eq "2") { } else { } と表示されるので素人ながらそう思いました。 質問がへたですが宜しくお願いします。

  • jQueryで複数のラジオボタンを処理

    jQueryを最近使い始めました。 以下のようなことをしたいのですが、いいやり方が分かりません。 jQueryを使ってページの読み込み後すぐに、ラジオボタンにチェックを入れたいと思っています。 以下のようにすると実際にチェックが入りました。 HTML <input type="radio" name="a" value="1" /> <input type="radio" name="a" value="2" /> jQuery if(!$("input:radio[name=a]:checked").val()){  $("input:radio[name=a]:first").attr("checked" , "checked"); } ラジオボタンが複数ある場合、上記のjQueryのnameの値を変えたものを増やしていけば対応できたのですが、ラジオボタンがたくさんある場合、同じようなスクリプトが何行も増えてしまいます。 うまく関数にする方法やその他よい対処法はないでしょうか。 <input type="radio" name="a" value="1" /> <input type="radio" name="a" value="2" /> <input type="radio" name="b" value="1" /> <input type="radio" name="b" value="2" /> <input type="radio" name="c" value="1" /> <input type="radio" name="c" value="2" /> … if(!$("input:radio[name=a]:checked").val()){  $("input:radio[name=a]:first").attr("checked" , "checked"); } if(!$("input:radio[name=b]:checked").val()){  $("input:radio[name=b]:first").attr("checked" , "checked"); } if(!$("input:radio[name=c]:checked").val()){  $("input:radio[name=c]:first").attr("checked" , "checked"); } …

  • XHTMLの整合性エラー

    こんにちは,ver_51 と言います. 今HTMLで作ったファイルをXHTML(1.1)へと書き換えています. HTMLで作成したファイルの内容ですが,ユーザにはラジオボタンを押してもらい,次にボタンを押してもらうと言う簡単なものです. HTMLでは意図した動作が実現できています. しかしXHTMLへと書き換え,下記サイトで整合性をチェックしているのですが,Valid でないとのエラーメッセージが返ってきます. 色々とサイトを調べて修正したのですが,整合性は取れませんでした. お手数ですが,Valid となる実現方法をお教えいただけないでしょうか? 宜しくお願い致します. 整合性チェック: http://validator.w3.org/ 下記は元のHTMLファイルの内容です. ~ <form name="form1"> <input type="radio" name="test" value="1" onclick="check(this)" />A <input type="radio" name="test" value="2" onclick="check(this)" />B <input type="radio" name="test" value="3" onclick="check(this)" />C <input type="button" value="ボタン" name="test" onclick="search()" /> </form> ~ <script type="text/javascript" src="aaa.js"></script> 下記はJavaScriptファイルの内容です. var v; function check(radio){ v=radio.value; } function search(){ if(v=="1"){ location.href='a.html'; } else if(v=="2"){ location.href='b.html'; } else{ location.href='c.html'; } }

    • ベストアンサー
    • HTML
  • JSP(ラジオボタンでチェックされた値を代入)

    JSPのHTML箇所で以下のようなラジオボタンを作成しました。 <input type="radio" name="a" value="1" checked> <input type="radio" name="b" value="2"> 上のラジオボタンが選択されたとき、<% %>のJAVAで変数cに1をセット、 下のラジオボタンが選択されたとき、変数cに2をセットという形を作りたいのですが、 調べてもわかりませんでしたのでご教示ください。 以下のようにするとどちらもソースを通るので、必ず2が代入されてしまいます。 IF文的にどちらかチェックされたほうを代入できるようにしたいです。 <input type="radio" name="a" value="1" checked <% c=1 %>> <input type="radio" name="b" value="2" <% c=2 %>>

    • ベストアンサー
    • Java
  • ラジオボタンにチェックを入れて、テキストボックスのコメントを消すには

    どなたかお力を・・・ 宜しくお願いします。 メールフォームを作成していて、 テキストボックス入力欄 ○ラジオボタン01 ○ラジオボタン02 から、1箇所選択してもらうようにしてあります。 テキストボックスに始めから、例を記入してあるのですが、 ラジオボタンにチェックを入れた際に消えるようにしたいのです。 フォームのコメントを消すjavascriptは変更してもらっても構いません。 <INPUT type="text" name="あいうえお" onfocus="if (this.value == '例)Corneometer') this.value = '';" onblur="if (this.value == '') this.value = '例)テスト';" value="例)テスト"> <INPUT type="radio" name="かきくけこ" value="ラジオ01" onClick="check_reset(this,10)">ラジオ01 <INPUT type="radio" name="かきくけこ" value="ラジオ02" onClick="check_reset(this,11)">ラジオ02

  • window.open()で開いたウィンドウにパラメータを渡す。

    まずは下記のHTMLファイルをご覧下さい。 ------------------------------------------------- <HTML> <HEAD> <TITLE>TEST01</TEST> <ScriptLanguage="JavaScript"> <!-- function new_win() { window.open("new_win1.cgi","POPUP", "scrollbars=1,status=0,location=0,toolbar=0,menubar=0,resize=1,height=450,width=300"); } //--> </script> </HEAD> <BODY> <FORM NAME="SEND_DATA"> <INPUT TYPE="hidden" NAME="par01" VALUE="aaaa"> <INPUT TYPE="hidden" NAME="par02" VALUE="bbbb"> <INPUT TYPE="hidden" NAME="par03" VALUE="cccc"> <INPUT TYPE="button" NAME="btn01" VALUE="SEND" onClick="new_win()"> </FORM> </BODY> </HTML> ------------------------------------------------ 以上です。このHTMLファイルを動かすとボタンだけが表示されます。 そしてそこのボタンをクリックしますと、新しいウィンドウが 出力され、そこには"new_win1.cgi"の処理結果が表示されます。 そこで、そのCGIを動かす時に"SEND_DATA"というフォーム内の データも一緒に送信したいのですが、どのようにやればよろしいのでしょうか?

    • ベストアンサー
    • HTML
  • ラジオボタンのチェック数に応じて、リンク先のページを切り替えたい

    「yes」か「no」だけを選択できるラジオボタンを10組準備し、 yesが選択された数だけをカウントし、 yesの数:0~2 → 01.htm yesの数:3~5 → 02.htm yesの数:6~8 → 03.htm yesの数:9以上 → 04.htm ラジオボタンをチェックし終えた後、 ボタンをクリックすると目的のページにジャンプする仕組みを造りたいのですが、 JavaScriptが全くわからないため、 本と格闘したものの作ることが出来ませんでした。 formの名前は「test」とし、 各ラジオボタンの名前は「q01」「q02」・・・と番号を振って管理しています。 HTMLのソースを記載します。 <form name="test"> <p> <input type="radio" name="q1" value="1">はい  <input type="radio" name="q1" value="0">いいえ </p> <p> <input type="radio" name="q2" value="1">はい  <input type="radio" name="q2" value="0">いいえ </p> <p> <input type="radio" name="q3" value="1">はい  <input type="radio" name="q3" value="0">いいえ </p> ~以下name="q10"まで続く <input type="button" value="採点"> </form> どなたか是非、お知恵をお貸しください。

  • <form>タグに2つのボタン

    <form>タグで2つのボタンを表示させ、以下のようにそれぞれのボタンで フィールドに別の値を入れて送信させることはできますでしょうか? できればHTMLで、できなければJavaScriptでできますでしょうか? ・button1を押したときは  フィールド「CASE」に1を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="1"> ・button2を押したときは  フィールド「CASE」に2を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="2"> ===== HTML ====================== <form action="test.cgi" method="post"> <input type="text" name="text1"> <input type="submit" value="button1"> <input type="submit" value="button2"> </form> 宜しくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう