ブルダウンで1項目を選択したのに全部表示されてしまう

このQ&Aのポイント
  • htmlページでプルダウン形式で血液型を選択し、その結果を表示させたいが、選択した項目だけでなく全てが表示されてしまう。
  • 質問者はhtmlページで血液型を選択するプルダウンを作成し、cgiで選択結果を受け取って表示させたいが、全ての血液型が表示される問題がある。
  • htmlページでプルダウン形式で血液型を選択し、選択結果を表示させるためにcgiを使用しているが、選択した血液型だけではなく全ての血液型が表示される問題が発生している。
回答を見る
  • ベストアンサー

ブルダウンで1項目を選択したのに全部表示されてしまう。

こんばんわ。いつもお世話になっております。 htmlページでプルダウン形式で血液型を選択して、 cgiに送り、その結果、貴方は(血液型)です。と表示させたいのですが、 htmlページで、 <form action="xxx.cgi"> <div><select name="blood"> <option value="a">A型 <option value="b">B型 <option value="ab">AB型 <option value="o">O型 </select></div> <input type=submit value="見る"></form> として、 cgiの方では、 $blood="$in{'blood'}"; if ($blood==a) { print "私はA型です。"; } if ($blood==b) { print "私はB型です。"; } if ($blood==ab) { print "私はAB型です。"; } if ($blood==o) { print "私はO型です。"; } としたのですが、 表示結果が 私はA型です。私はB型です。私はAB型です。私はO型です。 と全部でてきてしまいます。 何か構文的におかしいのでしょうか? よろしくお願いします。

  • xphp
  • お礼率53% (24/45)
  • CGI
  • 回答数1
  • ありがとう数0

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

  • ベストアンサー
  • pick52
  • ベストアンサー率35% (166/466)
回答No.1

CGIのカテゴリで言語が書いてないので言語はPerlと仮定します。 まず、Perlで文字列比較演算子は == ではなく eq です。 あと、血液型は調べていない人など不明な人やA/B/AB/O型以外の 血液型の人もいるのでそういった人のことも考慮しましょう。 <form action="xxx.cgi"> <div><select name="blood"> <option value="a">A型</option> <option value="b">B型</option> <option value="ab">AB型</option> <option value="o">O型</option> <option value="unknown">不明</option> <option value="etc">その他</option> </select></div> <input type="submit" value="見る"></form> my $blood = "$in{'blood'}"; if($blood eq 'a') { print "私はA型です。"; } elsif($blood eq 'b') { print "私はB型です。"; } elsif($blood eq 'ab') { print "私はAB型です。"; } elsif($blood eq 'o') { print "私はO型です。"; } elsif($blood eq 'unknown') { print "私の血液型は不明です。"; } else { print "私はその他の血液型です。"; }

関連するQ&A

  • 2個選択することで初めて表示というのができない

    <!DOCTYPE html> <html> <head> <title>プルダウンのメニューを表示を2つ設定</title> <script> function selectboxChange() { var value = document.forms.form1.Select1.value; var target = document.getElementById("output"); if (value == "要素1") { target.innerHTML = "合っています。"; } else { target.innerHTML = "間違っています。"; } } //--------------------- // function selectboxChange11() { var value = document.forms.form11.Select11.value; var target = document.getElementById("output11"); if (value == "要素11") { target.innerHTML = "合っています。"; } else { target.innerHTML = "間違っています。"; } } </script> </head> <body> <div>プルダウンのメニュー1</div> <form name="form1" action=""> <select id="Select1" onchange="selectboxChange();"> <option>---</option> <option value="要素1">要素1</option> <option>要素2</option> <option>要素3</option> <option>要素4</option> <option>要素5</option> </select> </form> <div id="output"></div> <div>プルダウンのメニュー2</div> <form name="form11" action=""> <select id="Select11" onchange="selectboxChange11();"> <option>---</option> <option value="要素11">要素1</option> <option>要素2</option> <option>要素3</option> <option>要素4</option> <option>要素5</option> </select> </form> <div id="output11"></div> </body> </html> ↑はjsの分ですが、 2個選んだら初めてイベントが発生するプログラムを作成しているのですが、 いかんせんうまくいきません。 恐らく、var value = document.forms.form1.Select1.value;のところで、躓いているのだと思います。 document.formsにカンマをつけてみたり、さらに、両端に[]をつけてみたり、いろいろ試しましたが、うまくいきません。 それとも、重ねること自体ができないのでしょうか。 どうしたらいいのでしょうか。

  • CGIプログラムに詳しい方よろしくお願いします。

    [選択してください]の項目を追加させたいのですが例えば下のような感じに この場合下記のタグをhtmlに添付するだけでいいのでしょうか? それともプログラムにも何かを追加する必要があるのでしょうか? 選択項目を付ける方法を教えてくれませんか [選択してください] あなたの血液型は? <SELECT name="blood"> <OPTION value="a" selected>A</OPTION> <OPTION value="b">B</OPTION> <OPTION value="o">O</OPTION> <OPTION value="ab">AB</OPTION> </SELECT>

    • ベストアンサー
    • CGI
  • フォームのプルダウンで、動的にデフォルト選択項目を切り替えたい

    ページ1の中のリンクABCそれぞれから同一の送信フォームページ(ページ2)にジャンプします。 そのとき、前ページで選択したリンク別に、プルダウンのデフォルト表示を変えたいのですが cgiなしで可能でしょうか。   (1)CGIを使わない方法   (2)CGIを使った方法(できれば避けたい) 具体的な記述方法、あるいは同様の回答のある質問no/urlを教えてください。 また、[html-html]間の情報の引継ぎ/受取方法も知りたいです。 よろしくおねがいします。 ---------------------------------------------------------- [ページ1] <a href="a.html')">A</a> <a href="a.html')">B</a> <a href="a.html')">C</a> ---------------------------------------------------------- [ページ2] >>Aからジャンプしてきた時  <select name="リンク元">   <option value="a" selected>Aからのリンク</option>   <option value="b">Bからのリンク</option>   <option value="c">Cからのリンク</option>  </select> >>Bからジャンプしてきた時  <select name="リンク元">   <option value="a">Aからのリンク</option>   <option value="b" selected>Bからのリンク</option>   <option value="c">Cからのリンク</option>  </select> >>Cからジャンプしてきた時  <select name="リンク元">   <option value="a">Aからのリンク</option>   <option value="b">Bからのリンク</option>   <option value="c" selected>Cからのリンク</option>  </select> . . . <input type="submit" value=" 送信 "> ----------------------------------------------------------

  • プルダウンメニューで、選択項目をリンク先でも維持したい。

    javascriptを使用したプルダウンメニューについて質問です。 <form name="form1"> <select name="select" onChange="location=select.options[select.selectedIndex].value"> <option value="a.html#01">A01</option> <option value="a.html#02">A02</option> <option value="a.html#03">A03</option> <option>---------------</option> <option value="b.html#01">B01</option> <option value="b.html#02">B02</option> <option>---------------</option> </select> </form> 2つのページ(a.html、b.html)上部に上記のようなプルダウンメニューを置き、それぞれ相互に行き来できるようにしました。 一応正常に動くのですが、たとえばa.htmlのプルダウンで『B01』を選択してリンク先b.htmlに飛ぶと、プルダウンの選択項目が一番上の『A01』に戻ってしまっています。 b.htmlに飛んだ後も『B01』選択の状態で残したいのですが。 どのようにすればよいのでしょうか・・・ よろしくお願い致します。

  • selectで選択した情報を再表示させる方法を教えてください。

    はじめて質問させて頂きます。 PHPでプログラムを組んでいたのですが選択した項目の情報を金額表示と一緒に表示させたいのですが初心者のためどのようにすればいいか分かりません。 解決方法を教えてください。 下記が作ったプログラムです。 <html> <head><tile>項目の選択ページ</title></head> ピザ生地を選択してください。<br> <form action="piza.php" method="post"> <select name="kizi"> <option value="1">パン生地</option> </select></p> </select></p> <p>トッピングを選んでください。<br> <select name="top"> <option value="1">サラミ</option> </select></p> <p>ソース選んでください。<br> <select name="sou"> <option value="1">イタリアン</option> <option value="2">カレー</option> </select></p> <p>個数を入力してください。<br> <select name="ko"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> </select> <select name="ko2"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> </select> <select name="ko3"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> </select> 個<br><br> <input type="submit" name="submit" value="合計金額"><br><br> <p><font><合計金額></font><br> <?php $kizi=$_POST['kizi']; $sou=$_POST['sou']; $top=$_POST['top']; $ko=$_POST['ko']; $ko2=$_POST['ko2']; $ko3=$_POST['ko3']; $Gn = 0; $n10 = intval ("$ko"); $m10 = intval ("$ko2"); $l10 = intval ("$ko3"); $ga = ($n10 * 100 + $m10 * 10 + $l10); $Gn = ($An + $Bn + $Cn); //An,Bn,Cnは金額1枚当たりの金額 //$A,B,Cは個数によって割引される上限 //Gnは個数×金額 //gaは選択された個数 if ($kizi=="1" && $sou=="1" && $top=="1" ){ $An = 260; $Bn = 263; $Cn = 221; $Dn = 0; $A = 10; $B = 20; $C = 30; if($ga <= $A){ $An ; }else if($ga > $A && $ga <= $B){ $Bn ; }else if($ga > $B && $ga <= $C){ $Cn ; }else{ $Dn ; print "当店ではそれ以上作れません"; } }elseif ($kizi=="1" && $sou=="2" && $top=="1" ){ $An = 323; $Bn = 240; $Cn = 204; $Dn = 0; $A = 10; $B = 20; $C = 30; if($ga <= $A){ $An ; }else if($ga > $A && $ga <= $B){ $Bn ; }else if($ga > $B && $ga <= $C){ $Cn ; }else{ $Dn ; print "当店ではそれ以上作れません"; } } if(!isset($_POST['kizi'])){ print ""; $Gn = 0; } $Gn = 0; if($n10==0 && $m10==0 && $l10==0){ $Gn = $An * 0 + $Bn * 0 + $Cn * 0; }else if($ga <=$A){ $Gn = ($ga * $An) * 10; }else if($ga > $A && $ga <= $B){ $Gn = ($A * $An + ($ga - $A) *$Bn )* 10; }else if($ga > $B && $ga <= $C){ $Gn = ($A * $An + ($B - $A) * $Bn + ($ga - $B) * $Cn) * 10; }else{ $Gn = ($Dn); } ?> <input type="text" name="kingaku" size="20" value="<?=$Gn?>">円<BR><BR><HR> </Form> <a href="default.htm">戻る</a><BR><BR> <a href="../../default.htm">トップページ</a><BR><BR> </body> </html>

    • ベストアンサー
    • PHP
  • jsでプルダウンで選択したものがうまく表示されない

    以下のhtml文があります。 <!DOCTYPE html> <html> <head> <title></title> <script language="javascript" type="text/javascript"> function onButtonClick() { var val = document.forms.form1.textBox1.value; var target = document.getElementById("output"); if (val == "Penguin") { target.innerHTML = "合っています。"; } else { target.innerHTML = "間違っています。"; } } </script> </head> <body> <form action="" id="form1"> <div>"Penguin"と入力してください。</div> <input id="textBox1" type="text" value="" /> <input type="button" value="Exec" onclick="onButtonClick();" /> </form> <div id="output"></div> </body> </html> Penguinと入力すると合っていますと表示が出ます。 これを、プルダウン方式にしました。 <!DOCTYPE html> <html> <head> <title></title> <script language="javascript" type="text/javascript"> function selectboxChange() { var val1 = document.forms.form1.Select1.value1; var target = document.getElementById("output"); if (val1 == "要素1") { target.innerHTML = "合っています。"; } else { target.innerHTML = "間違っています。"; } } </script> </head> <body> <form name="form1" action=""> <select id="Select1" onchange="selectboxChange();"> <option>---</option> <option value1 == "要素1">要素1</option> <option>要素2</option> <option>要素3</option> <option>要素4</option> <option>要素5</option> </select> </form> <div id="output"></div> </body> </body> </html> これにすれば、要素1を選択すれば、会っていますと表示されるのですが、されません。 どうしたら改善されますか。

  • プルダウン選択によるボタンの表示/非表示に関して

    教えて下さい。 下のように、ONCHANGEイベントで、プルダウンにて選択された内容を、別のテキスト ('text')エリアに表示させる記述をしましたが、今度は選択された内容によって、 ボタンの表示/非表示をコントロールしたいと考えています。 実際には、下の記述で、'BBB'が選択された場合のみ、***よりしたの"日"ボタンを 表示させたいと考えています。 どのように記述すれば良いでしょうか。。。 教えて頂きたいと思います。 <SCRIPT LANGUAGE="JavaScript"> function ChangeSelection(form, selection,num) { v = selection.value; form.text.value = v; } <FORM NAME="fm_a" print("<TD><input name='text'></input>\n"); print("</TD>\n"); print("<TD><select name='am_note' ONCHANGE='ChangeSelection(this.form, this)'>\n"); print("<option value=''></option>\n"); print("<option value='AAA'>AAA</option>\n"); print("<option value='BBB'>BBB</option>\n"); print("<option value='CCC'>CCC</option>\n"); print("</select>\n"); print("</TD>\n"); ************************************************************** print("<TD>\n"); print("<input name='Cal' type='button' value='日'\n"); print("</TD>\n");

  • セレクトメニューで選択された項目によって、HTMLの一部を表示したり非表示にしたりするには?

    お世話になります。 セレクトメニューで選択された項目によって、HTMLの一部を表示したり非表示にしたりするにはどうすればいいでしょうか? <select class = "select-box" tabindex="7" name='payment_string'> <option value="1,ジャパンネット銀行,0">ジャパンネット銀行</option> <option value="2,郵貯銀行,0">郵貯銀行</option> <option value="3,イーバンク銀行,0">イーバンク銀行</option> <option value="4,コンビニ決済,0">コンビニ決済</option> <option value="5,クレジットカード,0">クレジットカード</option> </select> 上記のようなセレクトメニューがあり、セレクトメニューが、『コンビニ 決済』、『クレジットカード』が選択されたときのみ下記の入力項目を表 示させたいと思っています。。 <div class='order_form_out_side_box'> <div class='order_form_name'> <p>ご住所</p> </div> <div class='order_form_contents'> <p>郵便番号:<input type = "text" class="name-box1" accesskey="i" tabindex="11" name = "bango" onkeyup="setbango(this.value)" value ="" /> <br /> <p>都道府県:<input type = "text" class="name-box1" accesskey="j" tabindex="12" name = "ken" value ="" /></p> <br /> <p>市・区:<input type = "text" class="name-box5" accesskey="k" tabindex="13" name = "shi" value ="" /></p> <br /> <p>町・村:<input type = "text" class="name-box5" accesskey="l" tabindex="14" name = "machi" value ="" /></p> <br /> <p>番地・建物名:<input type = "text" class="name-box5" accesskey="m" tabindex="15" name = "banchitate" value ="" /></p> <br /> </div> <br class='clear' /> </div> <div class='order_form_out_side_box'> <div class='order_form_name'> <p>電話番号</p> </div> <div class='order_form_contents'><p><input type = "text" class="name-box6" accesskey="n" tabindex="16" name = "tel" value ="" />&nbsp;ハイフンなしでご入力ください。</p> <br /> </div> JavaScriptを利用してやるという事は分かったのですが、JavaScript の知識がなく、どうすればいいのか分かりません。 どのようにすればこの機能を実現できるでしょうか?ご教授のほどよろ しくお願いします。

  • 質問Aと質問Bを選択して、メッセージを出したい。

    質問Aと質問Bを選択して、メッセージを出すプログラムを作っています。 ところが、functionについて、引数の場合は2つ同時に使用できますけれども、関数はできないのがネックです。 なぜそれが必要かというと、 funcの中にifが入っており、そこで、メッセージの挙動の操作をしているためです。 もし、関数を2つ同時に使うとしたらどのようにしたらいいですか。 以下はそのjavascript文です。 <!DOCTYPE html> <html> <head> <title></title> <script language="javascript" type="text/javascript"> function selectboxChange101() { var val101 = document.forms.form101.Select101.value; var target = document.getElementById("output101"); if (val101 == "要素101") { target.innerHTML = "合っています。"; } else { target.innerHTML = "間違っています。"; } } </script> </head> <body> <form name="form101" action=""> <select id="Select101" onchange="selectboxChange101();"> <option>---</option> <option value101 == "要素101">要素101</option> <option>要素2</option> <option>要素3</option> <option>要素4</option> <option>要素5</option> </select> </form> <div id="output101"></div> </body> <body> <form name="form111" action=""> <select id="Select111" onchange="selectboxChange111();"> <option>---</option> <option value111 == "要素111">要素111</option> <option>要素12</option> <option>要素13</option> <option>要素14</option> <option>要素15</option> </select> </form> <div id="output111"></div> </body> </body> </html>

  • 2つのセレクトボックスで選択した組み合わせの結果

    社内で個人的に使うためのツールを Google Sites で作成中なのですが、 できれば、セレクトボックスの組み合わせの結果はテキストではなく、 条件に一致した結果でのフローをまとめた画像やGoogleスライドを指定して、 各条件ごとに振り分けて表示させたいと考えています。 ネットで色々と検索しながら試行錯誤した結果、 <textarea> に画像やスライドを反映するのは不可と判断しておりますが、 なにか別の要素を指定することで可能な場合や、 その他に可能な方法があればご教示いただけますと幸いです! コードは下記です。 </head> <!-- javascriptファイル --> <script type="text/javascript"> function check(f){ var arr={ "A":{"aaa":"Aとaaaを選択しました","bbb":"Aとbbbを選択しました"} ,"B":{"aaa":"Bとaaaを選択しました","bbb":"Bとbbbを選択しました"} }; var select1=f.elements["select1"].value; var select2=f.elements["select2"].value; f.elements["C"].value=(arr[select1] && arr[select1][select2])?arr[select1][select2]:""; } </script> <!-- jQuery --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <body> <p class="title">該当する組み合わせを選択してください。</p> <form> <div class="cp_ipselect cp_sl01"> <select name="select1" onchange="check(this.form);"> <option value="">------ 選択肢①を選択してください ------</option> <option value="A">A</option> <option value="B">B</option> </select> </div> <div class="cp_ipselect2 cp_sl02"> <select name="select2" onchange="check(this.form);"> <option value="">------ 選択肢②を選択してください ------</option> <option value="aaa">aaa</option> <option value="bbb">bbb</option> </select> </div> <p class="title2">選択肢①と②の組み合わせの結果</p> <!-- 下の textarea 箇所に各組み合わせごとにテキストではなく、画像やスライドを表示したいです --> <textarea name="C"></textarea> </form> </div> </body> </html>