• ベストアンサー

JavaScriptでのセレクトボックスの作成について

開発環境はASP(ASP.NETでは無いです), SqlServerです。 実現したい処理としてはサーバーにある、親子関係の大分類マスタと中分類マスタより、セレクトボックス(HTMLで記載する際の<Select>タグで作成する物)を作成し、大分類マスタのセレクトボックスが変更されると、中分類マスタのセレクトボックスの値が変わる(画面の再描写は無し)という事をしたいと思っています。 こういった場合どのように記載すれば、実現することが可能でしょうか? ASPでのソースの書き方を正直まだ理解できていませんので、バカな質問かもしれませんがよろしくお願い致します。

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

  • ベストアンサー
noname#84373
noname#84373
回答No.2

こんなのじゃだめかなぁ~? <select id="a"></select> <select id="b"></select> <script type="text/javascript"> //@cc_on var a_val = [0,1,2]; var a_txt = ['A','B','C']; var b_val = [ [0,1,2],[0,1,2],[0,1,2] ]; var b_txt = [ ['A0','A1','A2'],['B0','B1','B2'],['C0','C1','C2']]; window.onload=function(){ setSelectOption('a',a_txt,a_val); setSelectOption('b',b_txt[0],b_val[0]); document.getElementById('a').onchange = function() { setSelectOption('b',b_txt[this.value],b_txt[this.value],0); } } function setSelectOption( elementId ,text_array, value_array, default_value, selected_value){ var element = ( typeof( elementId ) == 'string' )? document.getElementById( elementId ) || document.getElementsByName( elementId )[0]: elementId; while ( element.hasChildNodes() ) element.removeChild( element.lastChild ); for (var i=0, mx = text_array.length; i<mx; i++){ var n = new Option( text_array[i], value_array[i],(default_value==value_array[i]),(selected_value==value_array[i])); element.add( n/*@if(0) */, null /*@end@*/); } } </script>

その他の回答 (1)

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.1

中分類タグの選択肢をオプションオブジェクトで動的に作成します。 <SCRIPT type="text/javascript"> <!-- function resetChild() { var idx = document.frmMAIN.CMB_LARGE.selectedIndex; var large = document.frmMAIN.CMB_LARGE.options[idx].value; switch (large) { case "A" : document.frmMAIN.CMB_MIDDLE.length = 3; document.frmMAIN.CMB_MIDDLE.optios[0] = new Option("A111","A111"); document.frmMAIN.CMB_MIDDLE.optios[1] = new Option("A222","A222"); document.frmMAIN.CMB_MIDDLE.optios[2] = new Option("A333","A333"); break; case "B" : document.frmMAIN.CMB_MIDDLE.length = 4; document.frmMAIN.CMB_MIDDLE.optios[0] = new Option("B111","B111"); document.frmMAIN.CMB_MIDDLE.optios[1] = new Option("B222","B222"); document.frmMAIN.CMB_MIDDLE.optios[2] = new Option("B333","B333"); document.frmMAIN.CMB_MIDDLE.optios[3] = new Option("B444","B444"); break; case "C" : document.frmMAIN.CMB_MIDDLE.length = 2; document.frmMAIN.CMB_MIDDLE.optios[0] = new Option("C111","C111"); document.frmMAIN.CMB_MIDDLE.optios[1] = new Option("C222","C222"); break; } document.frmMAIN.CMB_MIDDLE.selectedIndex = 0; } --> </SCRIPT> <FORM NAME="frmMAIN"> //大分類 <SELECT NAME="CMB_LARGE" onChange="resetChild()"> <option value="A" SELECTED>A</option> <option value="B">B</option> <option value="C">C</option> </SELECT> <SELECT NAME="CMB_MIDDLE"> <option value="A111" SELECTED>A111</option> <option value="A222">A222</option> <option value="A333">A333</option> </SELECT> </FORM>

関連するQ&A

  • aspのセレクトボックスにDBのデータを表示する

    お世話になっています。 現在、aspとSQLServerを使って一覧表を作成しています。 その一覧表を、大分類と中分類のセレクトボックスから 選択して、検索ボタンを押すと、SQLを作成して一覧表を表示する のですが、問題は、大分類を選択した後、その大分類で絞りこまれた 中分類を表示するのに少し時間がかかりすぎるのです。。 中分類はSQLServerのマスターからひろってくるのですが、SQLの 実行自体は1秒もかからないのですが、HTML上でセレクトボックスに 表示させると、すごく時間がかかるのです。テキストファイルから 読み込んだ大分類のセレクトボックスは表示が速いのに、 中分類を同じように速く表示させるには何か別の技術が必要 なのでしょうか? また、大分類のセレクトボックスのonChangeにSubmit()して、 ページを作成しなおしています。 よろしくお願いいたします。

  • javascriptでセレクトボックスを動的に

    javascriptでセレクトボックスの"selected"を動的に変更する方法を教えてください>< 下記のselectedを"10"から"50"に変更したいのですが、 某ASPサービスの環境下での作業のため制約があり直接変更できません。 <body onload="event"> <select name="select"> <option value="10" selected="selected">10件</option> <option value="30">30件</option> <option value="50">50件</option> </select> そこで、JavaScriptで何とかしようと思うのですが、 <select>~ </select>の間(selectタグ含む)は、ASPサービスの制約でIDやclassを入れることもできず、 変更できるのは、body開始タグ部分、headerタグ内、body内(一部)です。 ページを読み込んだ際に、「50件を選択」、「10件からselected外す」状態にしたいです。 いろいろサイトを見てなんとなくできそうな気はするのですが、 スキル的に初心者レベルのため、わかりませんでした。 何卒よろしくお願いします!

  • 複数列を持ったリストボックスの作成

    HTML超初心者です。 この度、ASPを用いての開発を行う事となりました。 ASPはもちろんですが、まずは、HTMLにてこずってます。 そこで、どなたかご教授いただきたいのですが、 複数列を持ったリストボックスの作成は、HTMLのみで可能でしょうか? また、先頭行をヘッダ見出し行にする事は可能でしょうか? 不可能であった場合、実現方法は何かありますか? すみませんが、よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • エクセルの表内でのチエックボックス作成

    エクセルで作成された表の内で、3項目の選択用のチエックボックスを作成して、チエックで表示するようにと考えています。グーグル検索でHTMLタグ>フオームタブでチエックボックスについて記載がありましたが理解できませんでした。作成のご指導お願いします。

  • php セレクトボックス 分岐 わかりません・・・

    php if文? セレクトボックスの選択に応じて、次ページで表示するものも変えたい。 授業評価アンケートのデータ収集システムを開発中です。 page1.php では、 年度(セレクトボックス)[nendo] 学年(セレクトボックス)[gakunen] クラス(セレクトボックス)[class] 科目名(テキストボックス)[kamokumei] 科目コード(テキストボックス)[kamokucode] 分類(テキストボックス)[kind] 履歴者数(テキストボックス)[people] を選択及び入力します。 page2.php では page1.php で選択及び入力された情報をPOST?hidden?などを利用し、 年度:2011 学年:1 クラス:1 科目名:国語 科目コード:11L901 分類:講義科目 履歴者数:40 のように表示させ、その下にアンケートの回答者数を入力する表を示します。 分類のセレクトボックスには4種類の項目があります。 講義科目・体育科目・実験科目・HR です。 分類により、アンケートの設問数が異なるようにしたいのです。 たとえば、 講義科目は設問が1~5。体育科目は1~8。実験科目は1~10。HRは11~15。 だとします。 page1.php 入力された「分類」に応じて、設問数の異なる、 page2.php を表示したいのですが、わかりません。 また、アンケートの表については、 A~F評価があり、 設問1のAならそのマスをname="1A"、設問2のBならname="2B",・・・というようにしています。 page3.php 入力したものを全て表示し、で確認ページとし、 page4.php で、「登録」ボタンを押すと、 年度 学年 ・ ・ ・ 履歴者数 ・ ・ ・ 1A 1B ・ ・ ・ 15F (↑のような構造のtableも用意済み) のデータをmysqlに挿入します。 「分類」による分岐をせず、 page2.phpで、設問数1~5の場合で、データの挿入には成功しました。 6~15については、空となっています。 「分類」により設問数の異なるpage2.phpを表示し、 現在の段階のように、データを挿入できるような形態にできませんでしょうか? どうかお願いしたします!!!!!!!!!! 時間がありません>< お願いします!!!!

    • 締切済み
    • PHP
  • ASP.NETのGridViewでNULLの場合にチェックボックスにしたい

    ASP.net(VB)とSQLSERVERで開発しているのですが、SQLSERVERでストアドプロシージャでSELECT文を発行するSQLを書きました。 1)そのデータをGridViewで表示したのですが、列がNULLの場合にチェックボックスを表示したい。←これが分からない 2)チェックボックスがonの状態で実行ボタンが押下された場合に別のストアドプロシージャを走らせてNULLを「確認済」としたい。 (例) チェック   |名前 |メールアドレス 確認済    |Aさん|aaaa@test.co.jp □(チェックボックス) |Bさん|bbbb@test.co.jp [実行ボタン] このようにこのようなことはGridViewで可能なのでしょうか? それとも、HTMLコントロールを使用して一行ずつ書きこんでいくしかないのでしょうか? 返答をお待ちしております。

  • javascriptでセレクトボックスの"selected"を動的につ

    javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。 現在、以下のようなフォームを作成しました。 <select name='year'> <option value='2010'>2010</option> <option value='2011'>2011</option> </select>年 <select name='month'> <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> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> </select>月 <select name='day'> <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> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> <option value='13'>13</option> <option value='14'>14</option> <option value='15'>15</option> <option value='16'>16</option> <option value='17'>17</option> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> <option value='24'>24</option> <option value='25'>25</option> <option value='26'>26</option> <option value='27'>27</option> <option value='28'>28</option> <option value='29'>29</option> <option value='30'>30</option> <option value='31'>31</option> </select>日 このセレクトボックスに、例えば今日の日付"2010年9月30日"だったら、それぞれの年、月、日の<option>に"selected"をつけたいのですが、javascriptではどのようにして実現したら良いのでしょうか? よろしくお願いします。

  • JavaScriptのセレクトボックスの連動について

    JavaScriptにて連動するセレクトボックスを作成しました。 ソースは下記となります。 ==================================================== <html> <head> <title>複数のSELECT タグ連動</title> <script type="text/javascript"> <!-- function selectBox(n){ var idParent='parent_'+n; var idChild='child_'+n; document.getElementById(idChild).length=1; document.getElementById(idChild).selectedIndex=0; var child = childArray[document.getElementById(idParent).selectedIndex]; document.getElementById(idChild).length=child.length; for(var i=0;i < child.length;i++){ document.getElementById(idChild).options[i].text = child[i]; } } var childArray = new Array(); childArray[0]=new Array("渋谷区","品川区","港区","新宿区"); childArray[1]=new Array("横浜市","川崎市","厚木市","小田原市"); childArray[2]=new Array("静岡市","浜松市","三島市","焼津市","清水市"); // --> </script> </head> <body> <form name="myform" method="POST" action"#"> <select id="parent_0" onchange="selectBox(0)"> <option>東京都</option> <option>神奈川県</option> <option>静岡県</option> </select> <select id="child_0"> <option>渋谷区</option> <option>品川区</option> <option>港区</option> <option>新宿区</option> </select> <br /> <select id="parent_1" onchange="selectBox(1)"> <option>東京都</option> <option>神奈川県</option> <option>静岡県</option> </select> <select id="child_1"> <option>渋谷区</option> <option>品川区</option> <option>港区</option> <option>新宿区</option> </select> <br /> <select id="parent_2" onchange="selectBox(2)"> <option>東京都</option> <option>神奈川県</option> <option>静岡県</option> </select> <select id="child_2"> <option>渋谷区</option> <option>品川区</option> <option>港区</option> <option>新宿区</option> </select> <br /> </form> </body> </html> ==================================================== 上記のソースで想定の動きをしてくれているのですが、 例えば、 神奈川県 小田原市 と選択し、ブラウザの更新をかけると、 神奈川県 渋谷区 になってしまいます。 ブラウザの更新をかけた際に、 双方のセレクトボックスを初期状態にするには、どうしたらよいでしょうか? よろしくお願いします。

  • リストボックスを見えなくする

    お知恵を拝借します。m(__)m ASP(HTML)ページが一番最初に表示されたときは、 オプションボックスが見えない状態で、近くにある チェックボックスが外された時に、オプションボックス がひょっこり現れる、という処理は可能でしょうか? タグ辞典を見る限り、disabled はできても無理そう なのですが。。。

  • セレクトボックスの連動処理について

    PHPに投稿すべき内容かもしれませんが、 こちらに投稿します。以下URLを参考にセレクトボックスの 連動処理を実行させています。 やりたい事は以下になります。 ・PHPにてフォーム(親-子のセレクトボックス)を記載し、 親-子を連動させる仕組を複数作成する為です。 http://www.skuare.net/test/jdependent.html こちらのページに記載されている内容で、一つの関連付けされている セレクトボックス(親-子-孫)については、連動処理する事が確認できましたが、 例えば以下のように関連付けされているセレクトボックスが2つある時に 2個目のセレクトボックスの選択や表示がされません。 <TABLE> <select name="id" id="id" class="selectable"> <option value="">-- select --</option> <option value="1" title="flowers" >Flowers</option> <option value="2" title="animals" >Animals</option> </select> <select name="id2" id="id2" class="selectable"> <option value="">-- select --</option> <option value="1" class="flowers" title="sunflower" >Sunflower</option> <option value="2" class="flowers" title="rose" >Rose</option> <option value="3" class="animals" title="dog" >Dog</option> <option value="4" class="animals" title="cat" >Cat</option> </select> </TABLE> <TABLE> <select name="id" id="id" class="selectable"> <option value="">-- select --</option> <option value="1" title="flowers" >Flowers</option> <option value="2" title="animals" >Animals</option> </select> <select name="id2" id="id2" class="selectable"> <option value="">-- select --</option> <option value="1" class="flowers" title="sunflower" >Sunflower</option> <option value="2" class="flowers" title="rose" >Rose</option> <option value="3" class="animals" title="dog" >Dog</option> <option value="4" class="animals" title="cat" >Cat</option> </select> </TABLE> おそらくスクリプト記載部分の $(document).ready(function(){ $('#id2').dependent({ parent:'id',//親のid名 group: 'selectable' }); }); #id2辺りを触る必要があるのだとは思うのですが、 同じ内容のセレクトボックスをPHPに複数記載した時に、 どのようにスクリプトを変更する必要があるかが解らず 非常に困っております。どなたか教えていただければ 幸いです。 ※JavaScriptはまだ触り始めの為、初心者です。

専門家に質問してみよう