POST送信で複数の値を受け取る方法について
お世話になります。
下記のjspのようにfor文の中で複数個表示しているチェックボックスの値を
選択された分だけサーブレットに送信したいのですが、
サーブレット側で見てみると一番最初に選択されたものしか受け取れていません。
このような場合はどうすればいいのでしょうか。
ご教授お願い致します。
jsp
1 2 function delete_btn() { 3 4 const arr = []; 5 const del = document.getElementsByName("del"); 6 7 for (let i = 0; i < del.length; i++) { 8 if (del[i].checked) { 9 arr.push(del[i].value); 10 } 11 } 12 13 if (arr.length == 0) { 14 alert("削除する予約情報を選択してください。"); 15 window.reload(); 16 } 17 18 document.getElementById("span2").textContent = arr; 19 20 var ret = confirm("選択された" + arr.length + "件の予約情報を削除します。\nよろしいでしょうか?"); 21 22 if (ret) { 23 document.deleteForm.submit(); 24 confirm("選択された" + arr.length + "件の予約情報を削除しました。"); 25 26 } else { 27 28 document.getElementById("checkbox").checked = false; 29 30 } 31 32 } 33 34 35 36 37 <input type="button" class="commonbutton_btn" value="削除" onclick="delete_btn()"> 38 39 <form id="delete_form" method="post" name="deleteForm" 40 action="<%=request.getContextPath()%>/VisitorReservation/delete"> 41 42 <% 43 for (Yoyaku yo : YoyakuList) { 44 %> 45 46 <tr> 47 <td><label class="ECM_CheckboxInput"> 48 <input type="checkbox" class="ECM_CheckboxInput-Input" id="de" name="del" 49 value="<%=yoyaku.getRaihouYoyakuId()%>"> 50 <span class="ECM_CheckboxInput-DummyInput"></span><span 51 class="ECM_CheckboxInput-LabelText"></span> 52 </label></td> 53 <% 54 } 55 %> 56 </form>
Java
1 /** 2 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 3 */ 4 protected void doPost(HttpServletRequest request, HttpServletResponse response) 5 throws ServletException, IOException { 6 // TODO Auto-generated method stub 7 // 削除ボタン押下された、ID取得 8 9 RequestDispatcher dispatcher = null; 10 List<Yoyaku> YoyakuList = null; 11 String[] idGet = request.getParameterValues("del"); 12 13 14 for(int i=0; i<idGet.length; i++) { 15 16 try { 17 YoyakuDao.getInstance().DeleteYoyakuData(idGet[i]); 18 }catch (SQLException e) { 19 e.printStackTrace(); 20 throw new ServletException(); 21 } 22 } 23
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。