Java Jspを使っています。ドロップダウンリストを

// CommentsAdd Star
//<select name="begin" size="1">
// <%
// for(int j=1;j<nens.length;j++){
// %>
// <option value="<%="nen"+j %>"><%=nens[j] %></option>
// <%
// }
// %>
// </select><br>
で2007から2014年まで表示させています。これで2008を選んだら、後のドロップダウンリストで、2008-2014年を表示させたいのですが、方法を教えてください。
http://q.hatena.ne.jp/1488264311で回答を得たのですが、この回答では、
2008を選んだ時に2009-2014を表示する回答ですので、2008を選んだ時に2008-2014を表示する記述を教えてください。
また、以前の回答は、難しすぎて理解不能なので、ArrayListインスタンスを使っての方法も教えてください。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2017/10/18 14:52:32
  • 終了:2017/10/25 14:55:11

回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4621ベストアンサー獲得回数19562017/10/19 00:39:56

ポイント200pt

前の回答をちょっと手直し。

<select name="begin" size="1">
<%
    for(int j=1;j<nens.length;j++){
%>
    <option value="<%="nen"+j %>"><%=nens[j] %></option>
<%
    }
%>
</select><br>
<!-- ここまで、質問文 -->

<!-- ここから、回答 -->
<select name="finish" size="1"></select> 

<script>
window.addEventListener("DOMContentLoaded", function() {
    var begin = document.querySelector('select[name="begin"]');
    var finish = document.querySelector('select[name="finish"]');
    begin.addEventListener("change", function() {
        var s = "";
        var selected = false;
        Array.prototype.forEach.call(begin.options, function(opt) {
            if (opt.selected) {
                selected = true;
            }
            if (selected) {
                s += '<option value="' + opt.value + '">' + opt.innerHTML + '</option>';
            }
        })
        finish.innerHTML = s;
    });
});
</script>
他4件のコメントを見る
id:a-kuma3

ASP.NET や JSP をやってるってことは、Webサーバとクライアントのブラウザのどちらで処理が動いているイメージはある、ということですよね。

こちらについても、触れておきます。

また、以前の回答は、難しすぎて理解不能なので、ArrayListインスタンスを使っての方法も教えてください。

ArrayList を使う、ということは JSP 上のコードですから、開始の年を選んだときにリクエストを飛ばさなきゃいけません。
SELECT で項目を選んだだけでは、デフォルトの動作ではリクエストが飛ばないので、リクエストを飛ばすための javascript のコードを書かなきゃならない。
つまり、JSP で終了の年を作る処理を書く場合でも javascript のことは意識しなきゃいけない。
終了の年を選んだあとには、これらが含まれている form を submit するわけですから、開始の年を選んだときと、全体の submit をしたときの区別がつくようにしてあげなければいけない。

何かと考慮しなきゃいけなくなることが増えるので、javascript の範囲だけで記述できる方が考えることが少なくて済む、という判断です。

2017/10/20 17:37:30
id:kojiro_i619

何となく、言われることは、分かる気がします。ASP.NETでは、実際にWebを作成しました。SQLServerとVisual Basicを使ってですが、レンタルサーバーで、データベースの場所と、Webの場所が物理的に(たぶん違う機器)違っていて、マシンキーをweb.configに書き込んだりして、成功しました。このJavaでは、webでのツールをコードで書かないといけない(Beansはありますが)のが原則で、見栄えが良くないですが、サーバーが安いようなので、アップまでするかもしれません。

2017/10/23 11:16:10

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません