• 締切済み

プルダウンで選択した値によって、表示する行数を変えたい

現在、HPで予約ページを作成しているんですが、プルダウンで選んだ値(1~10)によって、入力できる行数を変えたいと思い、思考錯誤中です。。 イメージとしては、”じゃらん”で宿泊予約する際の予約内容入力画面です。 プルダウンで1~10部屋目まで選択⇒選んだ部屋数分の行(部屋数ごとの人数入力行)が表示される。 どなたかご存知な方がいらっしゃいましたらご教授頂けると幸いです。 宜しくお願い致します。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

大きく二つ 一つはDOMで都度行を作成する。こちらの方がきれいにかけて 汎用性も高いのだけど、知識が必要なので今回はパス もう一つは最初かくしておいて、セレクトを選ぶたびにで表示する。 余分なデータをおくらないように多少工夫が必要です。 こんな感じで・・・ <script> window.onload=function(){display_row(document.getElementById("s0").value);} function display_row(num){ var tags=document.getElementById("t0").getElementsByTagName("tbody")[0].getElementsByTagName("tr"); for(var i=0;i<tags.length;i++){ var inps=tags[i].getElementsByTagName("input"); var flg=(i>=parseInt(num)); tags[i].className=flg?"hide":""; for(var j=0;j<inps.length;j++){ inps[j].disabled=flg; } } } </script> <style> .hide{display:none;} </style> <form> <p> <select id="s0" onchange="display_row(this.value)"> <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> </select> </p> <table border id="t0"> <thead> <tr><td>num</td><td>data</td></tr> </thead> <tbody> <tr><td>1</td><td><input type="text" name="hoge[1]" /></td></tr> <tr class="hide"><td>2</td><td><input type="text" name="hoge[2]" /></td></tr> <tr class="hide"><td>3</td><td><input type="text" name="hoge[3]" /></td></tr> <tr class="hide"><td>4</td><td><input type="text" name="hoge[4]" /></td></tr> <tr class="hide"><td>5</td><td><input type="text" name="hoge[5]" /></td></tr> <tr class="hide"><td>6</td><td><input type="text" name="hoge[6]" /></td></tr> <tr class="hide"><td>7</td><td><input type="text" name="hoge[7]" /></td></tr> <tr class="hide"><td>8</td><td><input type="text" name="hoge[8]" /></td></tr> <tr class="hide"><td>9</td><td><input type="text" name="hoge[9]" /></td></tr> <tr class="hide"><td>10</td><td><input type="text" name="hoge[10]" /></td></tr> </tbody> </table> <p> <input type="submit" value="send" /> </p> </form>

kotobu-
質問者

お礼

さっそくの回答ありがとうございます。 作成中のページに入れ込んでみたところ、なんとか動作しました! これを元に、いろいろ付け加えていこうと思います。

関連するQ&A

  • プルダウンが画像の様に8までしか表示されません。

    エクセル2010です。 1列に1から15までの数字を入れ B1セルに入力規則のリストで、元の値を=$A$1:$A$15にしたのですが プルダウンが画像の様に8までしか表示されません。 アクセスのコンボボックスの様にリストの行の長さを調節できないのでしょうか? 15まで表示させたいです。

  • ピボットで、総計の値が求めている値を表示してくれない

    ピボットを作成したときに、行や列の総計の値が本来の値と異なる場合があります。このような時どのように対処したら宜しいのでしょうか。 <例> 映画館 収容人数 観客数 占有率 A館   100人   10人  10.0% B館   150人   20人  13.3% C館   200人   30人  15.0% D館   250人   40人  16.0% 全館の占有率は、 (全観客数:100人)÷(全収容人数:700人)=14.3% しかしピボットでの表示は、14.3%とは異なる値になってしまいます。 【合計】で表示すると54.3%となり、 【平均】を使ったとしても、全占有率を足し上げて単純に4で割った値となります。 どうすれば、(全館客数)÷(全収容人数)での値が表示されるのでしょうか。 よろしくお願いします。

  • エクセル VBA 印刷改ページ 行数設定

    環境:Excel2002です 印刷する行数は毎回異なります 改ページの条件は (1)行1から10は表題などが設定されているが6から10行を行タイトルに設定する (2)データ30行毎に改ページする       例:データ数100、行1から10に表題があるので 最終行は110      ページ設定 1ページ:行1から40                    行1から10の表題 プラス データ数30(行11~40)              2ページ:行6から10の行タイトル プラス データ数30(行41~70)              3ページ:行6から10の行タイトル プラス データ数30(行71~100)              4ページ:行6から10の行タイトル プラス データ数10(行101~110) 印刷範囲の設定はネット上に多数紹介されていますが 私の設定したい方法は見つけることができませんでした 思考錯誤してみましたが、私のスキルでは無理でした よろしくご教示願います

  • 【Excel】行数の定まっていないセルを数式で参照できますか?

    Excel2003を使用しています。 Q30にある特定の数値が入力されたら、D列×行のセルの値をS30に表示するという数式を作りたいのですが、×行の行数はU30に入力されている数値の行としたいのです。こういったことはできるのでしょうか? ちなみに、今回の場合はU30には191と入力されていて、D191の値がS30に表示されるように数式を作りたいのですが。。。 こういうことは不可能であれば、できないという回答でもいただけるとありがたいです。 よろしくお願いします。

  • セルの値によってリストの内容を入れ替え、さらに選択した値でリストの内容を入れ替えたい。ただし元リストは可変

    入力規則の設定されているセルで選択された値によって、 別のセルの入力規則のリストを変更する方法を知りたいのですが、 元リストは↓のイメージですが、リストは常に増え続けます。 <プルダウン1><プルダウン2><プルダウン3> インテリア     家具          イス                        ベット                        テーブル           家電          トースター                        炊飯器                        ポット                        洗濯器                        掃除機 ファッション   トップス         タンクトップ                        Tシャツ             ワンピース     ミズタマ                         ロング                         フェミニン             靴シューズ     スニーカー                        サンダル ・ ・ ・(と続ききます) <プルダウン1>で選択した値に対し、<プルダウン2>では その値を反映させた範囲のみ表示。<プルダウン3>は<プルダウン2> の値の範囲でプルダウンリストを表示させたいです。 <プルダウン1>でインテリアを選んだ場合 <プルダウン2>では家具・家電のみプルダウンで表示させたい! それぞれのプルダウンの内容は常に、 元リストに挿入追加するだけで、 反映されるようにしたいのですが、 できますでしょうか? ご存じの方がいらっしゃいましたら 教えてください。よろしくお願いいたします。

  • 【エクセル】ある範囲の最大値とその行数を表示する

    A2から下方向に数字が並んでいるとします。A列のある範囲の最大値を調べるとき、B1に調べる範囲の数字を入力します。 たとえばA2からA101まで100行の数字を調べるときは、B1に100を入力します。 この時、A2からA101までの範囲の最大値をB2に入力する場合、B2に =MAX(A2:OFFSET(A2,$B$1,0)) と入力すればよいと思います。この式を下方向にコピーすると、 B3にはA3からA102の最大値、B4にはA4からA103の最大値・・・が得られると思います。 ここで質問ですが、C列に最大値が入力されているセルの行数を入力したいのです。 A2からA101の最大値がA50にある場合、C2に50と入力(最大値が複数行ある場合は、最も数の少ない行数を入力)するためには、どうすればよいでしょうか。

  • エクセル入力規制リスト行数

    エクセル2002を使用しています。 セルに入力する時、入力規制で、リストよりドロップダウンして選択入力していますが、リストの行数が、8行しか表示されません。クリック数を減らすために、1度に20行位表示したいのですが、どうしたら出来るのか教えて下さい。

  • ホテル宿泊の人数オーバーについて

    ホテル(シティーホテル、ビジネス)によく宿泊しますが、家族人数とベッド人数が合わずにツインに3人で寝たりします。 家族5人で宿泊する場合は5人や3人部屋(ベッド)がなく、ツインに3人で寝たり、息子がいる地域に用事で出かけた際には、息子が寮よりホテルに来たりして、1人オーバーして寝たりします。 人数分予約が正当でしょうが、部屋数が予約で埋まり、予約できなかったり、費用が高くなってしまい、ツイン2部屋で5人、ツイン1部屋で3人やトリプル1部屋で4人、なんてことはよくあります。 ホテルは比較的大きなホテルでフロントを通らずに入室できる所が多く、会社の福利厚生の割引を利用してますので安ビジネスホテルをじゃらん等の宿泊予約サイトから予約して宿泊するより40~50%位安く宿泊できます。 定員より多く宿泊する場合などチェックイン、チェックアウトの際には私1人で行いますが、これはやはりまずいことでしょうね。 ホテルは部屋を提供するので1つのベッドで2人寝ても問題ないと聞いたこともあるのですが・・・ ホテル側に見つかった際、私は注意を受けるのでしょうか、また差額の費用の請求等されるのでしょうか。 浅はかですがアドバイスをいただければ幸いです。

  • 文字数・行数を指定してもその通りになりません。

    Windows 7, Office2010、Word画面にてページレイアウト→ページ設定→文字数と行数で、「文字数と行数を指定する。」に●を入れ、文字数:40字、行数:40行と入力しましたが、その通りになりません。(実際には35文字とか42行になってしまいます。) 専門家に聞くと、元々Windowsは、アルファベット(半角文字)を基調文字とする米国で開発されたために、全角文字である日本語への対応が不十分であり、このような場合には、適宜余白や文字間を手作業で調整したり、文字数と行数自体も数字を調整したりしてやる必要があるということですが、 簡単な調整方法はないでしょうか?

  • エクセルでセルをクリックしてプルダウンのようなもの

    エクセルで、合計数字を表示するセルをクリックしてプルダウンのようなものを出せて、そこに数字を入力し、その合計をセルに返すことはできるのでしょうか? ........A...............B..... 1...商品......販売数 2.....あ............140 3.....い..........1000 4.....う.............300 上の様に見える表を完成させたいのですが、例えばB列の商品"あ"の販売数を、 B2をクリックするかなにかして、プルダウンで 3/15 A社 50 2/06 B社 10 4/10 C社 80 と入力し、その合計数をB2に表示させたいのです このような事はエクセルでできますでしょうか? 入力する”3/15 A社 50”ののような項目は1品目で最大30項目くらいになりますので、 あくまで行数や列数を増やしたりしたくないもので、入力サブシート?的なものに入力し、 合計数を目的のセルへ表示したいのです VBなどあまりいじった事ないのですが、お分かりの方がおられましたらご教授願えませんでしょうか どうぞ宜しくお願い致します

専門家に質問してみよう