下のような登録画面で、ユーザIDを入力して欲しいんだけど、登録する前にユーザーIDを知らなきゃいけないって不便だなってことよくありますよね? そういうときは、検索用サブウィンドウを表示させるってのが一般的です。 でも結構、僕みたいな初心者は困ります。 2つのウィンドウをどうコントロールしていいか、頭がこんがらかります。 そんなときは、javascriptを使ってこうするみたいです。 「検索」ボタン押下で呼び出されるJavaScriptメソッドはこんな感じです。 <script type="text/javascript"> function userSearch() { window.open("userSearch.html", "Test", "width=800,height=800"); } </script> 「検索」ボタン押下で表示された小画面のテーブルは、こんな具合です。 もちろんこのJavaScriptメソッドに渡す引数は一覧表示画面でクリックされた行のパラメータを次の遷移先に渡したいと同様に JSPのスクリプトレットやタグに頼ります。 <form name="mainForm" action="sample.html" method="post"> <table border="1" width="25%" cellspacing="0"> <tr> <td>ユーザID</td><td>名前</td><td>部署</td> </tr> <tr> <td><a href="javascript:setAndSubmit('001')">001</a></td><td>斉藤</td><td>営業</td> </tr> <tr> <td><a href="javascript:setAndSubmit('002')">002</a></td><td>佐藤</td><td>総務</td> </tr> <tr> <td><a href="javascript:setAndSubmit('003')">003</a></td><td>鈴木</td><td>総務</td> </tr> </table> <input type="hidden" name="userId" value="" /> </form> このテーブルの「ユーザID」リンクをクリックしたときに呼び出される以下のJavaScriptメソッドで、親画面のuserIdを書き変えるわけです。 <script type="text/javascript"> function setAndClose(id) { alert("親画面のuserIdを書き変えますよ"); window.opener.document.mainForm.userId.value=id; //window.close(); } </script> これで小画面に検索入力部と検索ボタンを追加し、検索が出来るようになればOKですね。その部分は普通に検索画面を作る手順と同じなので割愛します。
|