• 締切済み

Webアプリケーション checkboxでのデータベース削除

お世話になっております。 早速なのですが、JSP, Servlet, MySQL, tomcat, javaなどをつかいWebアプリケーションを作成したいと思い投稿しました。 まずJSPのページにデータベース内容一覧を表示させそれらにinput type=checkboxを付けsubmitを使い、次のページで「~~~を削除しますか?」と表示させたいのですが・・・。 どのように次のページにデータベースとcheckboxの情報を引き渡すのかが分からなくなってしまいました。 どうかご教授ください。それとこれに関するサイトなどございましたらお教えください。 ----------------------------------------- <%@ page language="java" contentType="text/html; charset=Shift-Jis" import="java.sql.*"%> <html> <head> <title>一覧表示</title> </head> <body> <% String lh = "localhost:xxxx"; //ホスト名 String user = "xxxx"; //user名 String DB = "system"; //データベース名 String rr = "接続中"; //接続ステータス //接続データベース情報の表示 out.println("<h1 align='center'><u>マスターメンテナンスシステム</u></h1>"); out.println("<table border='1' align='left' bgcolor='#ffffff' width='100%'>"); out.println("<tr bgcolor='#ffffff'>"); out.println("<td><h2 align='center' style='background:#cccccc'>接続データベース</h2>"); out.println("<div><br></div>"); out.println("<h3>ホスト     <label>" + lh + "</label></h3>"); out.println("<h3>ユーザー   <label>" + user + "</label></h3>"); out.println("<h3>データベース <label>" + DB + "</label></h3>"); out.println("<h3>ステータス  <label>" + rr + "</label></h3>"); %> <form action="delete3.jsp" method="POST"> <h1 style="background:#cccccc" align="center"><u>テーブル詳細</u></h1> <table border="0" width="100%"> <tr style="background:#00ccff"> <th>/</th><th>NO.</th><th>PC名</th><th>構成価格/値段</th><th>OS</th><th>CPU</th><th>モニター</th><th>詳細</th></tr> <% Class.forName("org.gjt.mm.mysql.Driver"); Connection db=DriverManager.getConnection("jdbc:mysql://localhost:xxxx/sistem?user=xxxx&password=xxxx&useUnicode=true&characterEncoding=SJIS"); Statement sttSql=db.createStatement(); ResultSet rs=sttSql.executeQuery("SELECT * FROM dell_pc"); while(rs.next()) { String number=rs.getString("number"); out.println("<tr style='background:#ffffcc'>"); out.println("<td><input type='checkbox' name='tables'></td>"); out.println("<td>" + rs.getString("number") + "</td>"); out.println("<td>" + rs.getString("PC") + "</td>"); out.println("<td>" + rs.getString("kakaku") + "</td>"); out.println("<td>" + rs.getString("OS") + "</td>"); out.println("<td>" + rs.getString("CPU") + "</td>"); out.println("<td>" + rs.getString("display") + "</td>"); out.println("<td><a name='詳細' href='b.jsp?number=" + number + "'>" + number + "</a></td>"); out.println("</tr>"); } sttSql.close(); db.close(); %> </table> <a href="a.jsp">TOPへ</a> <input type="submit" value="削除"> </form> </body> </html> ----------------------------------- 環境ですがjdk1.5.0_11、MySQL5.0、tomcat6.0、eclipse3.2です。

みんなの回答

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

うまくいくかどうか自信がないですが out.println("<td><input type='checkbox' name='tables'></td>") を out.println("<td><input type='checkbox' name='tables'  value=\"<%= number %>\"></td>") でうまくいけば delete3.jsp内でdelete from dell_pc where number=request.getParameter("tables"); ではどうですか。

参考URL:
http://www.fk.urban.ne.jp/home/kishida/kouza/kishou/jsp05.html
hiay
質問者

お礼

ご返答ありがとうございます。このような感じでよろしいでしょうか? とりあえずご説明を頼りに作成してみました。 初心者ですので駄目出し並びご忠告をもらえるとうれしいです。 Delete.java ---------------------------- import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Delete extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("Shift-jis"); Query mysqlbean = null; try { String tables = req.getParameter("tables"); mysqlbean = new Query(); String query1 = "SELECT * FROM dell_pc WHERE number = " + tables; //SQLを実行 mysqlbean.setQueryStr(query1); mysqlbean.dbConnect(); mysqlbean.doQuery(); mysqlbean.dbClose(); mysqlbean.setId(tables); int rows = (int)mysqlbean.getRows(); if( rows > 0 ) { mysqlbean = new Query(); //SQL文 DELETEを作成 String query2 = "DELETE FROM dell_pc WHERE number = " + tables; //SQLを実行 mysqlbean.setQueryStr(query2); mysqlbean.dbConnect(); mysqlbean.doUpdate(); mysqlbean.dbClose(); mysqlbean.setMsg(" numberが " + tables + " のデータを削除しました。 "); } else { mysqlbean.setMsg(" numberが " + tables + "のデータはありません。 "); } } catch (Exception e) { //エラー処理 e.printStackTrace(); } //setAttribute()でデータを保管 req.setAttribute("mysqlbean", mysqlbean); //RequestDispatcherオブジェクトをJSPに転送 String jspname = "/delete3.jsp"; ServletContext context = getServletContext(); RequestDispatcher rd = context.getRequestDispatcher(jspname); rd.forward( req, resp ); } }

関連するQ&A