• ベストアンサー

サーブレット 選択されたチェックボックスの表示について

こんにちわ。 独学でサーブレットの勉強をしています。 チェックボックスで、どのチェックボックスをを選択したかを表示したいのですが、ネットや参考書を見てもよくわかりません。 イメージとしては、 □A □B □C □D □E とあってBを選択したら、ブラウザに 選択結果 B 2番目がチェックされました。 こんな感じで表示させたいです。 自分ではBの部分までは表示させうことができました。 よろしければ、アドバイスをお願いします。

  • Java
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.2

リクエストパラメータは1つのものに対して1つしか送信することができないので、質問にあるように"B"と"2番目"の2つを同時にServletに送信することはできません。 そこで少し変則的なやり方になりますが、 <input type="checkbox" name="check" value="A,1">A <input type="checkbox" name="check" value="B,2">B <input type="checkbox" name="check" value="C,3">C <input type="checkbox" name="check" value="D,4">D <input type="checkbox" name="check" value="E,5">E 上記のようにHTMLで<input ... value="A,1">とカンマ区切り等で送信したいパラメータを書いておき、それをServlet側で処理することになります。 Servlet側の処理は下記のような感じになります。doPost()メソッドの部分だけ書いておきますね。 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Vector<String> checkValues = new Vector<String>(); // チェックボックスの値を保持する Vector<String> checkNo = new Vector<String>(); // チェックボックスの番号を保持する // リクエストパラメータ(パラメータ名:check)の取得 String[] values = req.getParameterValues("check"); // パラメータ名:checkの各パラメータ値に対して for (int i = 0; i < values.length; i++) { String value = values[i]; String[] tmp = value.split(","); // パラメータ値を","で分割 checkValues.add(tmp[0]); checkNo.add(tmp[1]); } // HTML出力処理 resp.setContentType("text/html;charset=UTF-8"); PrintWriter out = resp.getWriter(); out.println("<html>"); out.println("<body>"); out.println("<h1>選択結果</h1>"); if (checkValues.isEmpty()) { out.println("<p>何も選択されませんでした。</p>"); } else { for (int i = 0; i < checkValues.size(); i++) { out.println("<p>" + checkValues.get(i) + "<br>"); out.println(checkNo.get(i) + "番目が選択されました。</p>"); } } out.println("</body>"); out.println("</html>"); } } これはあくまで「変則的」なやり方なので悪しからず・・・。

syamusuke
質問者

お礼

回答ありがとうございます。 お礼が遅れて、申し訳ございません。 丁寧な説明をしていただき、ありがとうございます。 回答いただいた内容とても参考になりました。

その他の回答 (1)

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.1

いくつか質問です。 ・チェックボックスを表示するHTMLもServletで出力していますか? ・Bの部分まで表示できたということは「2番目がチェックされました。」を表示したいのですか? ・チェックボックスの場合、複数選択可だと思いますがそれも考慮に入れますか?

syamusuke
質問者

補足

回答ありがとうございます。 チェックボックスはjspで作成しました。 作成したいのは「2番目がチェックされました。」の部分です。 複数選択された場合は、選択されたものすべてに対して同じ処理をするつもりです。 あと、ラジオボックスについても同様の処理をしたいと考えています。

関連するQ&A

  • チェックボックスを複数選択したら文字を表示したい

    フォームを作っています。チェックボックスがいくつかあるのですが特定のボックスをクリックしたら、別のテキストエリアにメッセージを表示したいのですが、可能ですか? たとえば、ボックスA~Gのうち、BとDが選択されたら、"etc"というテキストエリアに「ようこそ」と表示する。 できれば、ボックスを選択しただけで、表示してくれると最高にうれしいのですが。 ぜひ教えてください。

  • チェックボックスの配置順にテキストボックスに表示

    accessのフォームにチェックボックスを配置し チェックされたものをテキストボックスに表示させています。 ■A ■B □C □D ■E となっていたら、テキストボックスに A B E と表示させています。 チェックボックスの真ん中に新しくチェックボックスを追加すると テキストボックス内には、追加したものが最後に表示されていまいます。 ■A ■B □C ■Z □D ■E とすると、テキストボックスには A B Z E と表示させたいのに A B E Z 表示されてしまいます。 いちから順番どおりに作り直せばいいのですが かなりたくさんチェックボックスがあるうえに 上司から、この先も何度も作り直しを指示されそうです・・・。 できれば簡単に、配置した順にテキストボックスに表示されるようにしたいです。 チェックボックスの配置順に テキストボックスに文字を表示させる方法を教えてください!

  • エクセルでチェックボックスを非表示にしたい。

    エクセルでチェックボックスを非表示にしたい。 こんにちわ。 エクセルのチェックボックス等を表示しないようにすることは可能でしょうか? 例えば   A    B    C    D 1 チェ   チェ   チェ   チェ  2 あああ いいい ううう えええ (チェがチェックボックス) のようになっている状況で ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓   A    B    C    D 1 チェ   チェ   チェ   チェ  2 あああ     ううう えええ のようにB2を消したら ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓   A    B    C    D 1 チェ        チェ   チェ  2 あああ     ううう えええ このようにB1にあったチェックボックスを非表示、もしくは削除したいです。 このようなことは可能でしょうか? ぜひアドバイスをお願いいたします。

  • チェックボックスにチェックしたものを削除

    はじめまして。 htmlのフォームタグからjavaサーブレットを用いて、表形式で出力した検索結果一覧画面(jsp)から、チェックボックスにチェックしたものをまとめて削除したいと思います。 一覧画面でチェックボックスを表示させるまではできたのですが、そこからサーブレットへ値の受け渡し(複数)、データベースへ消しこみに行く処理についてご指南願います。 (環境) windows2000pro tomcat4.1 mysql よろしくお願いします。

    • ベストアンサー
    • Java
  • EXCELで問題集を作りたい(チェックボックス)

    EXCELで問題と解答を作りたいと考えています。 問題に対する選択肢を問題ごとに考え、 答えがひとつならラジオボタン 答えが複数ならチェックボックスを使おうと考えています。 シート1に、問題 シート2に、問題の解答(チェックボックスなどが正解のチェックになった画面) シート3には、シート1・シート2のデータを表形式で表示してあります。 問題のところで、どこにチェックを入れていたかは考えず、 問題の解答(シート2)と、まとめの表(シート3)を重視したいと思います。 下の図のような感じにしたいです。 左上が、シート1(問題) 右上が、シート2(解答) 一番下が、シート3(問題と解答 まとめ) です。 シート3には、問題、選択肢、答え、種類があります。 答えが一番面倒です。 ラジオボックスだった場合、 上から何番目がチェックされているかを数字で表します。 ○a ○b ●c ○d だった場合、上から3番目なので、[3] と表示します。 チェックボックス(複数回答)だった場合 どこがチェックされているのか、2進数で表記します。 □a ■b □c ■d □e チェックされているところを「1」と表記し、 「01010」と表示されるようにしたいです。 その右の列の[種類]ですが、 チェックボックスを使用するか、ラジオボタンを使用するかを選択できるように したいと考えています。 EXCELで作りたいのですが、 何か良い方法はありませんか? とても難しいことは分かっていますが、 どうしてもEXCELが良いのです。 詳しい方、知恵をお借りしたいです。 宜しくお願いします。

  • EXCEL:フォームで作成したチェックボックス選択したのものみ表示

    EXCELのフォームのチェックボックスやグループ化したオプションボタンを多数使用したシートがあります。 チェックや選択したオプションボタンに応じて結果が同じシートに表示されるようIF関数を使用してます。 例)チェックボックス(1)「植物」にチェックがあり   グループ(1)はオプションボタン「赤」を選択   グループ(2)はオプションボタン「水」を選択   →『花』と表示   グループ(2)のオプションボタン「緑」を選択した場合は   →『木』と表示 選択した項目をペーパーで確認のために、選択した項目だけ別のシートに表示させ印刷したいのですが何か良い方法はないでしょうか。 チェックボックス一つに対してグループ約5つ というものが10個ほどあります。 チェックボックス(1)をチェックしたら、チェックボックス(1)とグループ(1)~(5)を別シートへ表示するといったようにしたいのですが・・・

  • サブフォームにチェックボックス・・・・

    accessにて・・・ サブフォームに表示させるレコードと連結したチェックボックスは付けられますか? たとえば・・・ (B→チェックボックスです) (サブフォームイメージ) |項目A |項目B |項目C |項目D B |Aデータ|Bデータ|Cデータ|Dデータ B |Aデータ|Bデータ|Cデータ|Dデータ みたいな感じで、レコードセレクタ代りにチェックボックスを付ける感じで・・・ やってみたんですが、すべてにチェックが入ってしまいます・・・やはり無理なのでしょうか?教えてください

  • チェックボックスを選択するとテキストボックスが表示

    質問失礼します。 チェックボックスが下記のようにある場合ですが、 どれかではなく複数選択で テキストボックスを表示させるにはどうしたらよいでしょうか? <input type="checkbox" name="example" value="" />テレビ ←チェックしたらテキストボックス表示 <input type="checkbox" name="example" value="" />新聞 ←チェックしたらテキストボックス表示 <input type="checkbox" name="example" value="" />CM ←チェックしたらテキストボックス表示 <input type="checkbox" name="example" value="" />その他 ←チェックしたらテキストボックス表示 色々なJavaScriptを試したのですが、 どうも挙動がおかしく、クリックを続けると表示がされたりできなかったり、 という具合になります。 それぞれテキストボックスを表示させたいチェックボックスに 反映できるJavaScriptをご教示願いますでしょうか? 宜しくお願い致します。

  • HTML チェックボックスで複数の値

    初心者です。 HTMLで下記のような計算ができるシートを作成しようと思っています。 表   A B C □ D E F □ G H I [計算] (□はチェックボックス) チェックボックスをチェックし、計算ボタンを押すと1行目(A,B,C)と選択したチェックボックスの行のそれぞれの列の値の割り算を行い、その結果を合計した数を表示させることを考えています。 チェックボックスをチェックすることでデータを一つ取り込むことはできたのですが、複数データ(列データ)を取り込む方法がよくわかりません。 ご存じの方教えていただけないでしょうか。 初心者ですので、実際のコードから教えて頂けるとありがたいです。 よろしくお願いします。 

  • Excelでチェックボックス等を作りたい

    以下のようなものをExcelで作りたいのですが、どうしたらよいか分かりません。Excel2000を使用しています。 例えば、セルA1に質問文を入れます。 A2に10点、B2に50点、C2に100点と記載し、その下のA3、B3、C3にチェックボックスを作り、いずれかを選択してもらえるようにします。 そしてその選択された内容(10、50、100点)を、D3のセルに自動的に反映されるようにしたいです。 図にすると下記のようなイメージです。     A   B   C   D 1 (質問文)以下の当てはまる数字にチェック 2 10   50  100 3 □   □   □  (結果)   Excelでこういったものを作るには、どうしたらよいでしょうか? お手数をおかけしますがご存知の方は教えてください。よろしくお願いします。

専門家に質問してみよう