• ベストアンサー

動的に作成したラジオボタンの選択肢をサーブレットに渡す

こんにちは。再度失礼します。 JSPで一覧表示された表からラジオボタンでひとつ選択し、サーブレット・Beanにその値を渡し、更新ページで更新処理、または削除処理を行わせたいと考えています。 更新用・削除用のサーブレットは別々です。 一覧表にはラジオボタンをDBに登録された名前が、DBにあるだけ(select * from テーブル)表示されることになっています。 下のソースはわかりやすいように3個だけもってくることにしてます。 【JSP】----------------------------------------------- <% for (int i = 0; i < 3; i++){ %> <tr><td> <input type"radio" name="choice" value="i"> </td><td> <%= [DBから取得した名前](i) %></td> <%= i %> <% } %> 【servlet】 String str = request.getParameter("choice") -------------------------------------------------------- ここで実行するとサーブレットに渡されたchoiceの値はvalueの変数 i になってしまいます。valueの値がサーブレットに渡されるのはわかっているのですが、i ではなく、[DBから取得した名前]をサーブレットに渡したいのですがどうしたらよいのでしょうか。 良い方法をご存知の方、ご教授よろしくお願いいたします。

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

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

  • ベストアンサー
回答No.2

<input type="radio" name="choice" value="<%= [DBから取得した名前](i) %>"> これだとどうなります?

mogu33mogu
質問者

お礼

ありがとうございます!おかげで、うまく取得できました。 下の回答でもエラーが出たのは余計なスペースがあったせいみたいでした。

その他の回答 (1)

  • akinaga
  • ベストアンサー率60% (14/23)
回答No.1

間違えていたらすいません。 <input type"radio" name="choice" value="<%=i%>"> ではどうでしょうか?

mogu33mogu
質問者

お礼

回答ありがとうございます。 やってみたのですが…value="<%=i%>"のところでエラーが出てしまいました。 ちなみにこのようなやり方でも列数iではなく、DBから取得したカラム名をサーブレットに渡せるのでしょうか? ------------------------------------ ○(ラジオボタン) レモン ○        りんご ----------------------------------- →DBに「レモン」「りんご」の二件が登録されていて、一覧表示画面から「レモン」のラジオボタンを選択して実行ボタンを押したらサーブレットに「レモン」が渡される

関連するQ&A

  • 選択した値の渡し方について(ラジオボタン)

    プログラムまだ初心者です。 教えてください。 VBScriptでHTML(ラジオボタン)の部分を以下の通り書きました。 上の方を選択(Aを選択)すると4という値を次に遷移するページに渡し、 下の方を選択(A以外)すると4以外の数値を渡すようにしたいです。 valueの箇所をどのように書けばよろしいでしょうか? 4以外という書き方があれば教えて頂けますでしょうか? もしくはカンマ区切りでその4以外の数値を書けば宜しいのでしょうか? <TABLE border=1 cellPadding=1 cellSpacing=1> <TR> <TD><INPUT type="radio" name="choice" value="4" checked>A<br> <INPUT type="radio" name="choice" value="?" >A以外</TD> </TR> </TABLE>

    • ベストアンサー
    • HTML
  • ラジオボタンの選択肢をサーブレットで取得するには?

    サーブレットの開発を行っていますが、ブラウザー側で ラジオボタンを選択した際に何を選択したかのデータを取得したいのです。 (下記のHTMLで言えば、割引手形か、手形貸付か、証書貸付というのを取得したいのです) パラメーターをサーブレットで受け取りたいのですが うまくいきません HTMLでHIDDENを使用するとか聞いたことはあるのですがどのようにコーディングすればいいんでしょうか? よろしくお願いいたします。 <p> <input type="radio" name="radiobutton" value="radiobutton"> 割引手形  <input type="radio" name="radiobutton" value="radiobutton"> 手形貸付  <input type="radio" name="radiobutton" value="radiobutton"> 証書貸付 </p> ブラウザー側からは <form action="http://localhost/servlet/yuushi" method=post> の指定を行っています。 サーブレットでの受け取り方を、 String p2=request.getParameter("radiobutton");  とすると、p2=radiobuttonとデータがセットされました。

    • ベストアンサー
    • Java
  • サーブレットで

    こんにちは サーブレットで入力しセッションに追加 それをJSPの別画面で表示したいと考えています。 セッションに追加後 JSPでセッションの値をEnumerationで取得→表示 はできるのですが サーブレットで追記されていってもJSPはブラウザで更新してあげないと表示されない状態です 追記されていくたびに JSPのファイルも更新されていくにはどのような方法があるのでしょうか アドバイスお願いします

    • ベストアンサー
    • Java
  • JSPとサーブレット

    書き込み一覧が表示してあるJSPの入力フォームがあり、そこで入力をして「書き込み」ボタンを押すと入力したデータが、DBへ登録するサーブレットへ飛び、入力をした画面上では「書き込みました」のようなHTML画面が表示されるとします。その画面で「TOPへ戻る」ボタンを押すと、今度は検索サーブレットが動き、DBから最新の一覧が引っ張り出され、登録更新後の書き込み一覧JSPが画面上に出るとします。ここで質問なのですが、「書き込み」ボタンを押すと同時に登録サーブレットと検索サーブレットを動かすことは出来ないのでしょうか?理想としては、「書き込みました」のようなHTML画面は使用せず、一気に更新後の一覧を表示させたいのです。 この辺の知識はあんまり無いもので、具体的な記述方法を教えて頂くと嬉しいです。

    • ベストアンサー
    • Java
  • ラジオボタンで選択

    初めまして、015_dogiと申します。 ASP+SQLでWebの開発を始めたばかりでつまずいてしまいました。 商品一覧を表示している画面があるとして、その画面から ラジオボタンが押された商品名を取得したいのですが分かりますでしょうか? 商品数は複数あるので、 Response.Write "<INPUT type='radio' name='sel' value='" & item & "' > をループさせておきます。 valueには選択された商品名を取得したいので変数(item)にしてみました。 その際のラジオボタンがTureになった値を取得するにはどのようにすれば良いでしょうか? イメージは下記URLです。 http://catalog.khkgears.co.jp/khkweb/search/table.asp?4,default このような説明で分かりましたでしょうか? 何卒ご協力ください。お願いします。

  • jsp、サーブレットの質問です。

    Tomcatを使用してjspとサーブレットを使い掲示板のような投稿サイトもどきを作成していますが解決できない部分があります。 ↓は表示用のjspです♪ <html> <head> <title>Insert title here</title> </head> <body> <% String lsts = (String)request.getAttribute("lst"); %> <table border="4"> <tr> <td>日時</td> <td>タイトル</td> <td>スレッド主</td> <td></td> </tr> <tr> <td><%for(int i = 0; i<lsts.length(); i++){ out.println(lsts); } %> </td> <td><%out.println(); %></td> <td><%out.println("");%></td> <td> </td> </tr> </table> </form> </body> </html> こちらがサーブレットです otected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /*DB接続処理は省略します*/ try{ ps = (PreparedStatement) con.prepareStatement(sql); String sql = "select * from thred"; ResultSet rs = ps.executeQuery(); //テーブル内一覧取得 while(rs.next()){ rs.getString("time"); rs.getString("title"); rs.getString("id"); rs.getString("thredid"); String s = (rs.getString("time")+","+ rs.getString("title")+","+rs.getString("id")); String[] lsts = s.split(","); List<String> thlists = Arrays.asList(lsts); String ss = (thlists.get(0)); request.setAttribute("thlst",ss); RequestDispatcher dispatcher= request.getRequestDispatcher("/list.jsp"); dispatcher.forward(request,response); } }catch(SQLException e){ e.printStackTrace(); } catch(ClassNotFoundException e){ e.printStackTrace(); }finally{ try { con.close(); } } } jspの方にサーブレットでthredDBから抜き取ったtimeとtitleとidを全て表示させたいのですが 現状だと 2014-06-03 06:45:02  aaaa 1 の行だけがたくさん表示されてしまいます 恐らくスコープを取得した時点でこの↑の1行のものしかとれてこれていないのだと思います... どのように処理を行ったらよいのでしょうか? DBの中身は画像添付いたしますっ

  • ラジオボタンの初期値について

    いつも大変お世話になってます。 ラジオボタンで、ページが読み込まれたら、値によって、 選択されている状態にしようと思っているのですが、うまくいきません。 以下、ソース部分です。 ★javascript部分 addOnload(function() { var tantou9 = "<%=szei_hasu_kbn%>" var element9 = document.getElementById("hasu"); for (var i=0; i<element9.options.length;i++) { if(element9.options[i].value === tantou9){ element9.options[i].checked = true; break; }; }; }); addOnload(function() { var tantou10 = "<%=szei_zei_kbn%>" var element10 = document.getElementById("zei"); for (var i=0; i<element10.length;i++) { if(element10.item[i].value === tantou10){ element10.item[i].checked = true; break; }; }; }); 上は、プルダウンの時の処理を真似てるので、違うんだろうなとは思います。 例えば、element10[1].checked = true; だけを実行してもダメでした。 addOnload(function()部分は、他の処理はできるので、ここは間違ってないと思います。 ちなみにサーバーサイドはASPで、<%=szei_zei_kbn%>に値が問題なく入ってることは、 確認できてます。 ★HTML部分です。 <tr> <th> <b>端数</b> </th> <td> <input id="hasu" type="radio" name="zei_hasu" style="width:100%" rows=1 value="0">四捨五入 </td> <td> <input id="hasu" type="radio" name="zei_hasu" style="width:100%" rows=1 value="1">切捨 </td> <td> <input id="hasu" type="radio" name="zei_hasu" style="width:100%" rows=1 value="2">切上 </td> </tr> <tr> <th> <b>税</b> </th> <td> <input id="zei" type="radio" name="zei_zei" style="width:100%" rows=1 value=0>外税 </td> <td> <input id="zei" type="radio" name="zei_zei" style="width:100%" rows=1 value=1>内税 </td> <td> <input id="zei" type="radio" name="zei_zei" style="width:100%" rows=1 value=2>非課税 </td> </tr> どなたかご存知の方がいらっしゃいましたら、ご教授お願いします。 宜しくお願いします。

  • 静的ページからのサーブレット起動について

    今、JSPとサーブレットの勉強を行っております。 サーブレット側でデータを取得して JSP側で表示を行いたいと思っているのですが フォームアクション等を行わずに、JSP⇒サーブレット⇒JSPと 実施する事は可能でしょうか? URLアクセス ⇒ JSPからサーブレットの処理を呼び出し ⇒ サーブレットから クラスを利用してデータを取得 ⇒ JSPへデータを渡して表示   というように、URLアクセスのみで一連の処理を行いたいです。 サーブレットからJSPにセッション経由でデータを渡して表示する事や JSPからクラスを利用する方法では成功していますが できるだけMVCモデルに準拠した方法で行いたく思っており かつ、コントローラとしてサーブレットを使ってみたくて このような事に挑戦しております。 可能かどうかだけでもわかると非常に有難いですので ご存知の方、どうかよろしくお願い致します。

    • ベストアンサー
    • Java
  • ラジオボタンについて

    つまらない質問ですがどうか教えてください。 <form name="myform"> ・ ・ ・ <INPUT TYPE="RADIO" NAME="R1" VALUE="1">関連あり</INPUT> <INPUT TYPE="RADIO" NAME="R1" VALUE="2">関連なし</INPUT> <INPUT TYPE="RADIO" NAME="R1" VALUE="3">不明</INPUT> </form> 上記のようなラジオボタンを作ったのですが、 このラジオボタンのチェックされた値を取得するには document.myForm.cGyoumu.value ではできないのでしょうか? LOOPさせながらdocument.myForm.elements(i).checked で探さないと取得できないのでしょうか? 同じフォーム内にラジオボタンが複数あるため、 この方法はあまりやりたくありません。 ほかに方法がありましたら、どうか教えてください。

  • ラジオボタンのValueを受け取りたい

     ある画面(formnn10.jsp)データベースから読込んだ抜粋データをテーブルに出力し、該当する情報を1件選択(パラメータ化)してsubmitボタンで次画面(formn11.jsp)へ送り、再度データベースを読み込み詳細の表示を行う処理を構築中です。 現在、選択はラジオボタンをループで作成し、valueでパラメータを与えています。 この値の一部をJavascriptで取り出し、ダイアログへ選択の確認メッセージとして表示したいのですが、'document.formnn10.parm_No.valueはNull又はオブジェクトではありません'とのエラーメッセージが表示されます。(parm_Noがラジオボタンのnameです。) デバッグを行わず、次画面formnn11に処理が移ると選択情報の詳細は表示される為、javascriptでの値の取り出し方が問題の様なのですが…。 formnn10.jspのテーブル表示部分のコーディングは次の通りです。 <% for(int j=0;ichiran2[j][0]!=null;j++){ out.println("<tr>") out.print(" <td align=\"center\">"); out.print("<INPUT type=\"radio\" name=\"parm_No\" value=\""+wkparm_No+"\>"); out.print("</td>") out.println("</tr>") javascript側のコーディングは次の通りです。 wkname = document.formnn10.parm_No.value.substring(8); こんな感じです。ここに未表示のファイル名他の不一致についてはとりあえず無さそうです(手打ちしているので誤打鍵御容赦)  現在はラジオボタン+submitの形式で選択していますが、現行の方法に固執する必要は無く変更可能です。  各行の横で対象指定を行い、Javascriptで値を拾い(ダイアログに表示出来)、formnn11.jspでparm_Noとして値を受取るにはどうすれば良いでしょうか。

専門家に質問してみよう