// 문서를 읽을때 그림의 갯수에 따라 type="file"의 갯수를 출력 var len = document.getElementByClassName("chk").length; // 3-len >> 보여질 type="file"의 갯수 for(i=0;i<3-len;i++) // len >> 0이라면 : 0,1,2 동작, 1이라면 : 0,1 동작 { document.getElementByClassName("fname")[].style.display="inline"; } // fname >> 클래스이기 때문에 0 1 2 로 접근할수있음
function check() { // 삭제할 그림파일은 delimg변수, 존재할 그림파일은 eximg변수에 저장 var delimg = ""; var eximg = ""; var chk = document.getElementsByClassName("chk"); var n=0; for(i=0;i<chk.length;i++) // 사진파일 체크박스가 있는 만큼 동작 { if(chk[i].checked) { // 체크가 됐다 >> 삭제 하는 그림 delimg = delimg + chk[i].value + ","; } else { // 체크 하지 않았다 >> 삭제 하지 않는 그림 eximg = eximg + chk[i].value + ","; n++; } } document.rform.delimg.value=delimg; document.rform.eximg.value=eximg; // 기존에 보이던것을 전부 숨김 for(i=0;i<3;i++) { document.getElementsByClassName("fname")[i].style.display="none"; } // type="file"의 갯수를 변화 (삭제하고자 하는 그림이 발생하면 바꿔야함) // 3 - 체크된 체크박스갯수만큼 type="file"을 추가 for(i=0;i<3-n;i++) { document.getElementsByClassName("fname")[i].style.display="inline"; } }
if(rdto.getImg() != null && !rdto.getImg().trim().equals("")) { String[] img = rdto.getImg().split(","); // 그림파일을 포함 for(int i=0;i<img.length;i++) { %> <img src="../room/img/<%=img[i]%>" width="50"> <input type="checkbox" class="chk"> <% } } %> <hr> <!-- 새로 추가하는 폼 --> <input type="file" name="fname1" class="fname" style="display:none;"><br> <input type="file" name="fname2" class="fname" style="display:none;"><br> <input type="file" name="fname3" class="fname" style="display:none;"><br> </td>
update_ok Java 처리코드 public void room_update_ok(HttpServletRequest request, HttpServletResponse response) throws Exception { String path = request.getRealPath("/room/img"); int size = 1024*1024*10; MultipartRequest multi = new MultipartRequest (request, path,size,"utf-8",new DefaultFileRenamePolicy()); // 삭제할 그림을 삭제하기 String[] delimg = multi.getParameter("delimg").split(","); for(int i=0;i<delimg.length;i++) { // delimg 배열에 있는 값을 하나씩 꺼내서 삭제 File file = new File(path+"/"+delimg[i]); if(file.exists()) file.delete(); } // 새로추가된 그림 + 존재할 그림 String eximg = multi.getParameter("eximg"); Enumeration enu = multi.getFileNames(); String chuga = ""; while(enu.hasMoreElements()) { chuga = chuga + multi.getFilesystemName(enu.nextElement().toString())+","; // enu 는 form에서 전달받은 fname1,2,3 이름을 가지고 있음 } chuga = chuga.replace("null,", ""); String img = chuga+eximg; String name = multi.getParameter("name"); String price = multi.getParameter("price"); String min = multi.getParameter("min"); String max = multi.getParameter("max"); String content = multi.getParameter("content"); String id = multi.getParameter("id"); String sql = "update room set img=?,name=?,price=?,min=?,max=?,content=? where id=?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, img); pstmt.setString(2, name); pstmt.setString(3, price); pstmt.setString(4, min); pstmt.setString(5, max); pstmt.setString(6, content); pstmt.setString(7, id); pstmt.executeUpdate(); pstmt.close(); conn.close(); response.sendRedirect("admin_room.jsp"); }
숨긴 사진과 내용을 나오고 사라지게 하는 function 이거 개편함
function view_add(n) { if(document.getElementsByClassName("add")[n].style.display=="none") document.getElementsByClassName("add")[n].style.display="table-row"; else document.getElementsByClassName("add")[n].style.display="none"; /*전체 다 숨기기 // 딱히 쓸모는 없어보이는데 일단 알아두기 var len = cocument.getElementsByClassName("add").length; for() document.getElementsByClassName("add")[i].style.display="none"; */ }
i(n)값을 이용해서 view_add와 class="add"값을 동일하게 만들어줘서 클릭했을때
해당 글의 내용과 사진을 출력
for(int i=0;i<rlist.size();i++) { %> <tr align="center" onclick="view_add(<%=i%>)"> <td> <%=rlist.get(i).getName()%> </td> <td align="right"> <%=MyJob.comma(rlist.get(i).getPrice())%> </td> <td> <%=rlist.get(i).getMin()%>명 </td> <td> <%=rlist.get(i).getMax()%>명 </td> <td> <%=rlist.get(i).getWriteday()%> </td> <td><a href="room_update.jsp?id=<%=rlist.get(i).getId()%>"> Click </a></td> </tr> <tr style="display:none;" class="add"> <td colspan="3"> <% // String img = rlist.get(i).getImg(); // img.split(","); if(rlist.get(i).getImg() != null && !rlist.get(i).getImg().equals("")) { String[] img = rlist.get(i).getImg().split(","); for(int j=0;j<img.length;j++) { %> <img src="../room/img/<%=img[j]%>" width="100"> <% } } %> </td>
헷갈릴거같아서 코드 다가져옴