• ベストアンサー

チェックボックスのグループ化とon/offの読み取り方

チェックボックスを二つ(dic_germanとdic_italian)設定してformの名前をtangoform としたのですが、一方をチェックオンにすれば他方が自動的にオフになるように設定するにはどのようなPerlプログラムが必要ですか?  また、二つのボックスのチェック状態を読み取ってどちらかの辞書ファイルを開きたいのですが、読み取る方法はありますか? どなたかお教え下さい。

  • Perl
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.1

チェックボックスではなく、ラジオボタンを使った方がよいでしょう。 <input type=radio name="dic" value="german"> German<br> <input type=radio name="dic" value="italian"> Italian<br> として、$f{'dic'}の値 german/italian を判定します。value は 1 とか 2とかユニークな値を設定すればよいです。 最初に選んでおきたい方を指定する場合、 <input type=radio name="dic" value="italian" checked> とします。

tonka729
質問者

お礼

yatokesaさま、引き続きご親切なご指導をいただきありがとうございます。分かりました。グループ化はラジオボタンだけなのですね。これはお陰でできました。さて、次がまた進めません。。 if ($f{'dic'} eq 'german') { open(IN, "GermJ.txt"); } else { open(IN, "ItaliaJ.txt");} @list = <IN>; close(IN); このperl行どこかが間違っているらしく、ラジオボタン切り替えが反映されません。ホントに初心者ですね、私は。。if 文すらちゃんと書けないとは情けないのですが、お教え願えれば幸いです。

tonka729
質問者

補足

「お礼」に、どうもif文がおかしいらしい、なんて書いた後、原因が分かりました。表を作って、ボタンをインクリメント入力ボックスとは別の列に入れていたのが災いしていました。解決しました。ありがとうございました。

関連するQ&A

  • 一つのチェックボックスのON/OFFに応じて他の複数をON/OFFに

    昨日の質問した下記の関連で再質問です。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1765687 親1に対し、子1~4と、合計5つのチェックボックスがあり、 親のチェックOFF ⇒ 子1~4をdisableに、 子のチェックON ⇒ 子1~4をactive としたいのですが、 #4さんのご回答を適用すると、上記5つのチェックボックス以外も 全てdisableの対象になってしまいます。 他方、自分の元質問のソースを改造しようとも思いましたが、 子1~4のname属性が全て違う名前のため、そのままでは使えません。 ついでに(些細なことですが) 子1~4の全てがONにされた時に、親がOFFなら自動でONにしたいです。 テンプレートは下記ですが、よろしくお願い致します。 <html> <head> <script language="javascript" type="text/javascript"> // ■■■■ </script> </head> <body> <form id="query" name="query"> <input type="checkbox" name="oya" value="1" checked>親 <input type="checkbox" name="ko1" id="ko1" value="1" checked>子1 <input type="checkbox" name="ko2" id="ko2" value="1" checked>子2 <input type="checkbox" name="ko3" id="ko3" value="1" checked>子3 <input type="checkbox" name="ko4" id="ko4" value="1" checked>子4 </form> </body> </html>

  • チェックボックスを画像アイコンでOffに。

    ある操作をするために、チェックボックスのOn/Offで動作を分岐させています(そのやり方はできています)。本題ですが、普通に開くと、そのチェックボックスはOn状態になっています。それを、画像アイコン(無論、Form内に置くことはOK)をクリックすることで、Offにしたいと思っています。 しかし、どのようにしたらよいか、やり方がわからず、行き詰っています。 ご教授のほど、よろしくお願いします。

  • チェックボックスのグループ化による選択可否

    4つのチェックボックス2つのグループに分けて 一方がチェックされている時は、他方のグループ はチェックできないようにできるでしょうか? 具体的には、 □1マイル □5マイル □1キロメートル □5キロメートル というチェックボックスがあり、上のマイルグループのどれかにチェックをいれると下のキロメートル部ループはチェックを入れられないようにしたいのです。 (もちろん逆のケースもあり) どうにかなりますでしょうか?

  • PHPでチェックボックスの結果を離れた配列に入れる

    PHPにて、複数あるチェックボックスの操作結果(オン/オフ)を変数に格納する方法を探しています。 予定として プログラム実行 → ボタンが1つと、チェックボックスが複数表示される → チェックボックス操作 → ボタンを押す → 複数のオン/オフ状況が配列に格納される といったものを作りたいと考えています。 現在はそのためのテストとして、ボタンを押した際のオン/オフの状況が画面に順に表示されるものを作っていますが、変数がUndefined Indexであると言われ、表示することができません。 現在のプログラムは下の通りです。 実際のプログラム上では、(1),(2),(3)はそれぞれソース内のかなり離れた場所にあります。 各チェックボックス(各<form>~</form>)毎にボタンを用意していないのが原因であるとは思うのですが、ボタンは特定の箇所に1つだけ用意したいと考えています。 またチェックボックス表示部とボタン表示部は(ソース的に)離れているため、 ボタン表示部で<form>を開いて、開いたまま進み、チェックボックス表示部が終わってやっと閉じる、という方法は難しいと思います。 どうすればチェックボックスの結果を離れた箇所にある配列に入れることができるのでしょうか。 宜しくお願いします。 [regist.php] <?php //(1) 更新ボタンを押すとチェックボックスのon/off結果が表示される if(isset($_POST['cmd_Print'])){ $check = $_POST["cb"]; for($i=0; $i<count($check); $i++){ print "${check[$i]}<br>"; } } //(2) 更新ボタンの表示 print("<form method=\"post\" action=\"regist.php\">"); print("<input type=\"submit\" name=\"cmd_Print\" value=\"結果表示\">"); print("</form>"); //(3) チェックボックス(on,off)を交互に表示 for($i=0; $i<5; $i++){ //チェックボックスをオンの状態で表示 print("<form method=\"POST\" action=\"./regist.php\">"); print sprintf('<input type="hidden" name="cb[]" value="off">'); print sprintf('<input type="checkbox" name="cb[]" value="on" checked="checked">'); print("</form>"); //↑チェックボックス操作後、オフの状態なら$cb[]に"off"を、オンの状態なら$cb[]に"on"を入れる //チェックボックスをオフの状態で表示 print("<form method=\"POST\" action=\"./regist.php\">"); print sprintf('<input type="hidden" name="cb[]" value="off">'); print sprintf('<input type="checkbox" name="cb[]" value="on">'); print("</form>"); //↑チェックボックス操作後、オフの状態なら$cb[]に"off"を、オンの状態なら$cb[]に"on"を入れる } ?>

    • 締切済み
    • PHP
  • 一方のチェックボックスのON/OFFに応じてもう一方をON/OFFに

    文末のように、「親」「子」のチェックボックスがあります。 規定値は双方ともにONです。 「親」のチェックがOFFになったら、「子」は無効(disable)に、 再び「親」のチェックがONになったら、「子」はactiveにしたいです。 過去に本掲示板でご教示いただいたスクリプトを応用したら 何とか実現できたのですが、シンプルな動作なので もっと簡潔(2行位??)にできそうに思います。 いかがなものでしょうか? <html> <head> <script language="javascript" type="text/javascript"> function autochk(f,name){ var names=document.getElementsByName(name); for(var i=0; i<1; i++){ names[i].disabled = !f.checked; } } </script> </head> <body> <form id="query" name="query"> <input type="checkbox" name="oya" value="1" checked onclick="autochk(this,'ko');">親 <input type="checkbox" name="ko" value="1" checked>子</div> </form> </body> </html>

  • テキストボックスのlength>0の間、常にチェックボックスをオフにしたい

    HTMLフォームで、以下のようにチェックボックスとテキストボックス if (テキストボックスのlength > 0 )が真である間は 常にチェックボックスをオフに、 if (テキストボックスのlength > 0 )が偽である間は 常にチェックボックスをオンとするよう、常に監視したいです。 これをjavascriptで実現する方法について、ご教示よろしくお願いします。 <html> <head> </head> <body> <form name="0" id="0"> <input type="checkbox" name="1" id="1" checked> <input type="text" name="2" id="2"> </form> </body> </html>

  • 検索後にチェックボックスのON/OFF状態を再現して表示したい

    下記の例で、表示されている sample.php にあるチェックボックスを ON/OFFしてから再計算ボタンを押下後、チェックボックスのON/OFF状態を 引き継いで(維持して)sample.phpを表示させることはできませんか? 「りんご」だけにチェックして再計算ボタンを押下後、再表示された sample.php は「りんご」だけチェックが入っているイメージです。 <form action="./sample.php" method="post"> <input type="checkbox" name="fruit[]" value="apple">りんご</td> <input type="checkbox" name="fruit[]" value="orange">みかん</td> <input type="checkbox" name="fruit[]" value="grape">ぶどう</td> <input type="submit" name="exec" value="再計算"> </form> なお、name="fruit[]" は配列になっていて、SQL発行に生かされています。

    • ベストアンサー
    • PHP
  • オフになっているチェックボックスのデータ送信

    フォームの値をPOSTで送信しているのですが、 チェックボックスの値はオンになっているもののみ送信されるのですよね。 データの受け側のプログラムに渡せなくて困っています。 (□はチェックボックスのつもりです、■はオンのつもりです) データ1:■ データ2:□ データ3:□ データ4:■ データ5:□ という画面から、 データ1=1 データ2=0 データ3=0 データ4=1 データ5=0 という風に全てのデータに対して配列で1つのパラメータとして渡したいのです。 Hiddenを使用しても、チェックボックス自体に名前が入っているので?POSTで一括送信すると、1つもチェックされなかった場合に、プログラム側で引数が不足していると認識されてダメでした。 チェックボックスに名前を付けずに、Hiddenの値を操作するなんて出来ないですよね・・・? またデータ送信前にオンかオフかチェックして、オフになっているもののValueを0に変更した上でチェックする、というのもやってみたのですが、history.backで戻った時に、全部オンになってしまうので、これもダメでした・・・ 何か良い方法をご存知の方がいらっしゃいましたら、よろしくお願いします!

  • DataGridViewのチェックボックスのON、OFFの判定方法

    お世話になります。ご協力お願いします。 環境:VS2008 .Net FrameWork3.5 言語:C# 質問内容:ボタンを押下したら、DataGridViewの列に設定したチェックボックスのON,OFFを判定して処理を行いたい。 現状以下の方法で実現は出来ていますが、とても回りくどい方法になっています。 正しい処理を教えて頂けないでしょうか。 1.DataGridViewにて、列にチェックボックスを設けている。 2.truevaluesプロパティにtrueをセットしている。 ボタンを押下したらチェックボックスのON、OFFを判定する為に、DataGridViewの行を ループさせて判定させています。 for(int i=0;i < DataGridView.Count;i++){ ___if((string)DataGridView.Rows[i].Columns[0].values == "true") ___{ ______処理 ___} } お願い致します。

  • Excel VBA チェックボックスの一括オン、オ

    1.2.のように2つマクロを作成し、それぞれチェックボックスのオン、オフが一括でできるようになったのですが、1つにまとめることはできますでしょうか? 1回クリックすると、一括オン、もう一度クリックすると一括オフを繰り返すようにしたいです。 1.チェックオフ Dim myobj As OLEObject For Each myobj In ActiveSheet.OLEObjects If TypeName(myobj.Object) = "CheckBox" Then _ myobj.Object.Value = False Next 2.チェックオン Dim myobj As OLEObject For Each myobj In ActiveSheet.OLEObjects If TypeName(myobj.Object) = "CheckBox" Then _ myobj.Object.Value = True Next

専門家に質問してみよう