データベース内のユーザーを表示するビューサーブレットがあります。各行のユーザーを表示するテーブルには、この行のセルをテキストボックスに変更するためのボタンがあります。
私が直面している問題は、データを取得してforループを作成し、各行内のテーブルを表示するときに、更新ボタンを印刷してJavascript関数にアタッチしていることです。この動的行のIDを渡すための重要なポイントは、コードを実行しても何も起こりません。これは、問題があることを示しています。
これは、ビューサーブレットのコードです。
@SuppressWarnings("serial")
public class View extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<html> <head>");
out.println("<script type='text/javascript'>");
out.println("function show_textBOX(i){");
out.println("alert(\"update these users -- \"+i+ \" -- \")");
out.println(" document.getElementById(i).innerHTML ='f';");
out.println("}");
out.println("</script>");
out.println(" </head> <body>");
PersistenceManager pm = PMF.get().getPersistenceManager();
Query query = pm.newQuery("select from " + User.class.getName());
List<User> list = (List<User>) query.execute();
resp.getWriter().println("<form method='' action='' name='formMY'>");
resp.getWriter()
.println(
" <table border = '1'> <caption><h4>all users </h4></caption> ");
resp.getWriter()
.println(
"</br> <h2> <tr> "
+ "<td> "
+ " USERname "
+ "</td> <td> Salary "
+ " </td> <td>BirthDate "
+ " </td> <td> Modification1 </td> <td> Modification2 </td> </tr></h2>");
int i = 1;
for (User obj : list) {
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String today = formatter.format(obj.getDate());
resp.getWriter()
.println(
"</br> <tr id='"
+ i
+ "'> <td>"
+ obj.getName()
+ " </td> <td> "
+ obj.getSalary()
+ "</td> "
+ " <td> "
+ today
+ "</td>"
+ " <td>"
+ " <input type=button value='Update' onclick()='show_textBOX("
+ i + ")'>" + " </td> <td>"
+ " <input type=button value='DELETE' >"
+ " </td>" + " </tr>");
i++;
}
resp.getWriter().println("</table> </form>");
resp.getWriter().println("</body> </html> ");