2011年6月23日木曜日

一覧画面で入力しつつ明細にも飛びたいよ~

一覧画面を表示して、一覧標示の各行の項目をクリックすると明細の表示をするといったアプリケーションは良く見かけますが、この場合は<a>タグを使って明細表示に飛ばすようにすることが多いと思います。

今回のアプリケーションでは同じような一覧画面で各行に入力項目があるというケースです。

この場合、明細表示には<a>タグを使っているので、入力フォームのsubmitが行われないので、入力した内容がサーバ側で送信されません。明細から一覧画面に戻った時に、入力した内容が元に戻ってしまっているのが残念です。まあ、入力については明細画面で全部させれば良いという案もありますが、大量データの選択などのように単純な作業については一覧画面で行いつつ、明細を見たい場合もあるというケースもまた良くあると思います。

今回は<s:hidden>とJavaScriptを使ってsubmitさせるようにしました。

とりあえず画面には<s:hidden id="index">としてどの行が選択されたかをサーバに送る為の項目を用意します。あとは次のようなメソッドを用意して

function fncSubmit(value){
  document.forms["hogeForm"].elements["index"].value = value;
  document.forms["hogeForm"].submit();
 }

明細の表示ではonClickでこのメソッドをインデックスを引数として呼び出すようにしておきます。また、本来のsabumitボタンではインデックスを-1としてこのメソッドを呼び出すようにしてあげれば、あとはサーバ側でindexの内容を判定して、明細表示をしてあげれば良い事になります。

0 件のコメント:

コメントを投稿