とっておきの手土産を教えて

Javaサーブレット&JSPで開発しています。
HTMLフォームよりラジオボタンを選択して、その内容をデータベースに登録します。

<input type=radio name=xxxx value=1>りんご
<input type=radio name=xxxx value=2>みかん
<input type=radio name=xxxx value=3>ばなな

上記の例だと、りんごを選択したとき、データベース上のxxxxには、1を登録します。

その後、変更時には下記のように登録した内容を画面にラジオボタン形式で表示させたいのですがどのように記述すればよいでしょうか?

<input type=radio name=xxxx value=1 checked>りんご
<input type=radio name=xxxx value=2>みかん
<input type=radio name=xxxx value=3>ばなな

A 回答 (1件)

選択項目をどのように表示しているかによっても


ロジックが変わってきますが、

1.選択項目が動的である(DBから持ってくる等)

  選択項目を表示するループ内に、データと比較
  判断を行い、checkedの文字列を追加して表示する

===========================================================
  選択項目表示分のループ{
   表示する選択項目とデータを比較
    同じだった場合checkedを出力
    違う場合は何も出力しない
  }
===========================================================


2.選択項目が静的である(選択項目でデータは1~順番に入っている)


  データの保持の仕方によって使えるタイプです。
  逆を言うと、汎用性はありません。
  データを例のように単純な数値の連番で持っていないとです。
  下の例ですとリンゴの場合は1が入っており、その該当する配列
  に、checkedの代入を行っています。
  その後表示の際、配列の中身を順番に表示し、checkedが入っていれば
  そこにデフォルトでチェックがされます。
===========================================================

<%
  // 配列宣言
  String[] checked = new String[]{"","",""};
  // データを取得する(1が入っていた(リンゴ))
int data = (取得);

  // 添字は0から
  checked[data-1] = " checked";

  // 表示
  out.write ( "<input type=radio name=xxxx value=1" + checked[0] + ">りんご" );
  out.write ( "<input type=radio name=xxxx value=2" + checked[1] + ">みかん" );
  out.write ( "<input type=radio name=xxxx value=3" + checked[2] + ">ばなな" );
%>
===========================================================

あとは、if文でゴリゴリに書くとか、いろいろな方法があると思います。


とりあえず、思いついたロジックを回答とします。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報