HTMLのSELECTタグの使い方、JSPのセッション格納について

このQ&Aのポイント
  • JSPで開発をしております。IE7以上です。同一画面内でボックスで選択した値をそのままセッションに格納したいのです。Javascriptで制御したいのですが、なにかいい方法をご存知ですか?
  • SELECTタグのonchangeイベントを使用して、選択した値をセッションに格納する方法があります。ボックスが変化すると、選択した値が取得できます。初期表示の値をセッションに格納するために、selected属性を使用して初期選択値を設定し、Javascriptで値を取得することができます。
  • ボックスをいじらなければ初期表示の値をセッションに格納し、ボックスをいじれば選択した値をセッションに格納する方法です。HTMLのSELECTタグとJSPのセッション格納を組み合わせることで、同一画面内でユーザーが選択した値をセッションに保存することができます。
回答を見る
  • ベストアンサー

HTMLのSELECTタグの使い方、JSPのセッション格納について

HTMLのSELECTタグの使い方、JSPのセッション格納について Jspで開発をしております。IE7以上です。 同一画面内でボックスで選択した値をそのままセッションに格納したいのです。 Javascriptで制御したいのですが、なにかいい方法をご存知ですか? <script type="text/javascript"> function test(obj) { with(obj) { form.text1.value = options[selectedIndex].value; } } </script> <SELECT NAME="select1" onchanged="test(this)"> <OPTION VALUE=1>First <OPTION VALUE=2 selected>Second <OPTION VALUE=3touya">Theard </SELECT> またselectedでは初期の表示のみ選べて値の初期値はscript側で設定するのでしょうか? これだとボックスに変化があれば値が取得できるみたいです。 できればボックスをいじらなければ初期表示の値をセッションに格納。 ボックスをいじれば選択した値をセッションに格納。

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

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

javascriptには、クッキーを読み書きする仕組みはあっても、セッションを管理する 仕組みは無いと思います。よってセッション管理はjsp側でやらざるをえないでしょう。 前後関係がわかりませんが、どうしても一つのJSPでセレクトされた値をセッションに 保存したいのですよね。 こおすればよいのでは、?ですけど まず、<select name="select1">部は別の<form>にします。そのフォームの送信先は自分 自身にしておき、javascriptで、onchangedのイベントでselectされた値を自分自身にサ ブミットします。 自分自身は、まず最初にjspでrequestのParameterにselect1があるかないかを 判断し、 なければ、 form.text1のvalueにセレクトボックスのデフォルトの値をセットするjavascriptと デフォルトが選択された<select name="select1">を出力します。 あれば、 jspでセッションにrequestのselect1の値を格納します。 この時、セッションにすでにselect1の値があれば再セットします。 次にform.text1のvalueにセッションに格納した値をセットするjavascriptと 格納した値値が選択された<select name="select1">を出力します。 これでどうでしょうか。

marugori
質問者

お礼

ありがとうございます。 ロジックはわかりました。 ここ2日ほどがんばってみましたが、いまだに実現させれません。 よければ何かサンプルをいただけないでしょうか? よろしくお願いします。

関連するQ&A

  • JavaScriptで書かれたOptionタグをVBAで選択する方法

    <SCRIPT language="JavaScript"> document.write("<SELECT name=aaa><OPTION value=A>1</OPTION><OPTION value=B>2</OPTION><OPTION value=C selected>3</OPTION></SELECT>") </SCRIPT> 上記のJavaScriptで書かれたOptionタグをVBAから objIE.Document.forms(0).aaa.Item(1).Selected = True と選択しても動かすことが出来ませんでした。 VBAからJavaScriptで書かれたOptionタグの選択することをしたいのですが不可能なのでしょうか?

  • selectボックスで選択数を制限したい

    入力画面を作成しています。 この画面に、複数選択可能なselectボックスを配置したいと思っています。 この時、選択できる個数を制限したいのですがどのようにすればよいでしょうか? <select multiple size="3" name="test">   <option value="" selected></option>   <option value="1">A</option>   <option value="2">B</option>   <option value="3">C</option>   <option value="4">D</option>   <option value="5">E</option> <select> 初期値が「""」となっており、selectボックスで何も選択せずに登録することも可能で、 何か選択された時は、最大3つまでしか選択できないようしたいと思っております。 そして、最大3つまでしか選べようにした上で、その3つの中に初期値の「""」が含まれていた場合はメッセージを表示させる。 以上の事をやりたいのですが、どのようにすれば良いでしょうか? 助けてください。よろしくお願いします。

  • selectフォームの特性について

    オプションメニューの表示について教えてください。 例) <select name="test" size="1" > <option value="0">---------</option> <option value="1">test1</option> <option value="2">test2</option> <option value="3" selected>test3</option> <option value="4">test4</option> <option value="5">test5</option> </select> 以上のようにselectフォームを設定した場合に、 クリックするとtest3が一番上に選択され、test4、test5の順に表示されますが、 これをtest3が選択された状態でtest1、test2、test3、test4、test5と いうように表示させることは可能なのでしょうか? もし、可能ならどのような方法があるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • HTMLのSELECTタグの手入力について

    こんにちは、早速質問させていただきます。 HTMLのプルダウンメニュー作成の為のSELECTタグについてなのですが。 例えば <select name="test" style="width:100px"> <option value="a">1:テスト1 <option value="b">2:テスト2 <option value="c">3:テスト3 <option value="d">4:テスト4 </select> という記述をした場合、 このプルダウンメニューにカーソルがあっている状態で, "3"とキーボードから手入力行った場合、"3:テスト3"が選択される というように手入力した文字から始まるものが選択されるという動きになりますよね。 しかし、たまに"3"と入力しても"3:テスト3"が選ばれない。 という状態になる時があるのですが、そうなるような原因をご存知の方はいらっしゃいますでしょうか。 全角モードになっているからというわけではないですし、一度ブラウザ閉じてから再度起動しても出来ない場合があるのです。 PCごと再起動した場合には戻るのですが・・・

  • selectボックスの選択結果を変数に代入したい

    ブログのホームページで過去のブログカレンダーを表示させるために、年と月をセレクトボックスから入力して希望の年月のカレンダーを表示させようと頑張っています。 下記プログラムを作成しましたが、selectボックスから選択した年号を変数に代入することが出来ず、取得した年号をjavaの内部処理に使うことが出来ません。 考えられることはいろいろやってみましたが、全て変数に代入するところでうまくいきません。 よろしくご指導お願いします。 <html> <head> <title>選択された表示テキストを取得する</title> </head> <body> <select name="year" onchange="alert(getSelectedText(this))"> <option value="1">2014</option> <option value="2">2013</option> <option value="3">2012</option> </select><a>年</a> <script type="text/javascript"> function getSelectedText(obj){ var txt = obj.options[obj.selectedIndex].text; // 表示テキスト取得 return 'text = ' + txt; // 表示テキストをリターン var selectYear = text; // 表示テキストを変数に代入 } alert(selectYear); // 変数の内容をアラート表示 /*if(selectYear==2014){           // 変数を内部処理に使用 document.write('\ <select name="month" onchange="selectMonth(this)">\ <option value="1">1</option>\ <option value="2">2</option>\ <option value="3" selected>3</option>\ <option value="4">4</option>\ </select><a>月</a>\ ');*/ </script> </body> </html>

  • ドコモのSELECTタグ

    ドコモのXHTMLのサイトを作っていますが、 1ページ内のSELECTタグの上限はありますでしょうか? SA700iでは15個しか表示されませんでした。 また、これは端末毎に違ってくるのでしょうか? --------------------------------------------- <form> <select name=test1><option value=1></select> <select name=test2><option value=1></select> <select name=test3><option value=1></select> ・ ・ ・ <select name=testn><option value=1></select> </form> --------------------------------------------- 宜しくお願いします。

    • ベストアンサー
    • HTML
  • セレクトボックスとテキストボックスの連動について

    セレクトボックスで質問事項を選ぶと、テキストボックスの中に選択した名称が表示される。ということをやりたく下記の様に設定しました。 <script> function hoge(obj){ var f=obj.form; var v=obj.options[obj.selectedIndex].value; var c=f.elements["comment"]; c.value+=v; obj.selectedIndex=0; } </script> <select name="質問事項1" onchange="hoge(this)"> <option value="selected">質問事項を選んでください</option> <option value=“質問1">質問1</option> <option value="質問2">質問2</option> <option value="質問3">質問3</option> </select> <textarea name="comment"></textarea> 現在発生している問題が1点あります。 セレクトボックスで質問を2回選ぶと、選んだ2つの結果がテキストボックス内に連続して表示されます。 例: 1回目 セレクトボックス内 「質問1」を選択 ↓ テキストボックス内 「質問1」が表示 2回目 セレクトボックス内 「質問2」を選択 ↓ テキストボックス内 「質問1質問2」と表示 2回目以降選んだ場合に前回の処理をクリアにして、1つのみ表示させたいと思うのですがどうやればいいのでしょうか。 よろしくお願いします。

  • プルダウンを選択していないときは、初期値(selected)の値を、選

    プルダウンを選択していないときは、初期値(selected)の値を、選択したときは選択値を、hiddenで渡したい。 ▽プルダウン例 <form> <select> <option value="0" selected>A</option> <option value="4">B</option> <option value="6">C</option> </select> </form> ↑上で選択した値(A or B or C)値を、↓下のvalue=「"hoge"」に渡したいです。 ※選択肢は3つだけではなくて、たくさんあります。 ▽input例 <input name="category_name" value="hoge" type="hidden"> ※formとかselectにid振っても構いません。 ※javascriptでやりたいです。

  • HTMLのコンボボックスとの関連

    HTMLの同ページ内にコンボボックスAとコンボボックスBがあるとして、 <!-- JavaScript部------ --> <script language="javascript"> <!--// function cmdCtr() { if (document.forms[0].A.value=='a2'){ document.forms[0].B.disabled=true; document.forms[0].B.selectedIndex=0; document.forms[0].B.value="b1"; }else{ document.forms[0].B.disabled=false; } } //--> </script> <!-- HTML部----------- --> <FORM> <SELECT name="A" onChange="cmdCtr();"> <OPTION value="a1">a1</OPTION> <OPTION value="a2">a2</OPTION> <OPTION value="a3">a3</OPTION> </SELECT> <SELECT name="B"> <OPTION value="b1">b1</OPTION> <OPTION value="b2">b2</OPTION> <OPTION value="b3">b3</OPTION> </SELECT> </FORM> 以上のようなJavaScriptを記述しました。しかし、上記の流れ通りならばa2を選択するとBボックスが選択出来なくなり、Bボックスのb1の値が自動でサーブレットに飛ぶはずなのですが、エラーが起きてしまいます。書き方が悪いのでしょうか? ちなみに、AボックスBボックス両方がきちんと選択されている場合はエラーは起きません。

  • 親子連動型のselectを設置し、さらにselectedを設定したい。

    以下のソースのように、親子連動型のselectを作成しています。 ですが、特定の値にselectedを設定するところで行き詰っています。 例えば、 dai_komokuのselectedが大項目2で chu_komokuのselectedが中2-3 というようなかたちです。 このような事は可能なのでしょうか? 可能であれば教えていただければ幸いです。 <script type="text/javascript"> <!-- function changelist(){ var num = document.forms["writeform"].dai_komoku.selectedIndex var obj = document.forms["writeform"].chu_komoku.options obj.length = 0 if(num==0){ obj[obj.length]=new Option("----------------",""); } if(num==1){obj[obj.length]=new Option('中1-1','11') obj[obj.length]=new Option('中1-2','12') }else if(num==2){obj[obj.length]=new Option('中2-1','21') obj[obj.length]=new Option('中2-3','23') } if(obj.selectedIndex==-1)obj.selectedIndex=0 if(document.layers){ window.resizeBy(-10,-10) window.resizeBy(10,10) } } //--> </script> <form method="post" action="hoge.php" name="writeform"> 大項目 <select name="dai_komoku" onchange="changelist()"> <option value="" selected>--選択してください--</option> <option value='1'>大項目1</option> <option value='2'>大項目2</option></select> <br> 中項目 <select name="chu_komoku"></select> </form>

専門家に質問してみよう