오늘은 멀티삭제에 대해서 구현해보자.
memberList.jsp
<th scope="col" style="background-color: #00bfff;" style="color: white;"><input type="checkbox" id="checkboxAll" name="" value="" class="form-check-input"> 전체선택
이건 전체 체크박스
<script>
$("#checkboxAll").click(function() {
if($("#checkboxAll").is(":checked")) $("input[name=checkboxSeq]").prop("checked", true);
else $("input[name=checkboxSeq]").prop("checked", false);
});
$("input[name=checkboxSeq]").click(function() {
var total = $("input[name=checkboxSeq]").length;
var checked = $("input[name=checkboxSeq]:checked").length;
if(total != checked) $("#checkboxAll").prop("checked", false);
else $("#checkboxAll").prop("checked", true);
});
</script>
이코드는 전체삭제 체크박스가 눌렷을때, 아래것도 같이 눌리거나 눌리지 않았을때 모두 눌리지 않게하는 버튼이다.
<td><input type="checkbox" id="checkboxSeq" name="checkboxSeq" value="<c:out value="${item.ifmmSeq}"/>" class="form-check-input"></td>
이건 개별체크박스이다.
checkboxSeq로 이름을 지었다.
<script>
var goUrlMultiUele ="/member/memberMultiUele";
var goUrlMultiDele ="/memberMultiDele";
var seq = $("input:hidden[name=ifmmSeq]");
var form = $("form[name=formList]");
var checkboxSeqArray = [];
$("#btnModalUelete").on("click", function(){
$("input[name=checkboxSeq]:checked").each(function(){ // check된것을 찾고 체크된 값만 넘김
checkboxSeqArray.push($(this).val()); // check 해당된 값을 담는다.
});
$("input:hidden[name=checkboxSeqArray]").val(checkboxSeqArray);
$("#modalConfirm").modal("hide");
form.attr("action", goUrlMultiUele).submit();
});
$("#btnModalDelete").on("click", function() {
$("input[name=checkboxSeq]:checked").each(function(){
checkboxSeqArray.push($(this).val());
});
$("input:hidden[name=checkboxSeqArray]").val(checkboxSeqArray);
$("#modalConfirm").modal("hide");
form.attr("action", goUrlMultiDele).submit();
});
</script>
여기까지하면 다음과 같은 Ui를 볼 수 있다.
MemberController.java
@RequestMapping(value = "memberMultiDele")
public String memberMultiDele(@ModelAttribute("vo") MemberVo vo, Member dto, RedirectAttributes redirectAttributes) throws Exception {
String[] checkboxSeqArray = vo.getCheckboxSeqArray();
for(String checkboxSeq : checkboxSeqArray) {
vo.setIfmmSeq(checkboxSeq);
service.delete(vo);
}
redirectAttributes.addFlashAttribute("vo", vo);
return "redirect:/member/memberList";
}
MemberServiceImpl.java
public int delete(MemberVo vo) throws Exception {
dao.deleteNationality(vo);
dao.deleteAddress(vo);
dao.deleteNumber(vo);
dao.deleteEmail(vo);
dao.delete(vo);
return 1;
}
MemberDao.java
// delete
public int deleteNumber(MemberVo vo) { return sqlSession.delete(namespace + ".deleteNumber", vo);}
public int deleteEmail(MemberVo vo) { return sqlSession.delete(namespace + ".deleteEmail", vo);}
public int deleteAddress(MemberVo vo) { return sqlSession.delete(namespace + ".deleteAddress", vo);}
public int deleteNationality(MemberVo vo) { return sqlSession.delete(namespace + ".deleteNationality", vo);}
public int delete(MemberVo vo) { return sqlSession.delete(namespace + ".delete", vo);}
그럼 다음과같이 삭제가 되는걸 확인할 수 있다.
결과값
체크하고 삭제를 누르면
모달창이 나타나게되고,
시퀀스 112 라인이 없어진걸 확인이 가능하다.
'Project > Today's house' 카테고리의 다른 글
[오늘의집] 로그인 버튼눌럿을때 한번에 넘기는 방법 (0) | 2022.06.09 |
---|---|
[오늘의집] 관리자 게시판 아마존서버에 배포 (0) | 2022.04.20 |
[오늘의집] Update까지 (POST방식) (0) | 2022.04.18 |
[오늘의집] 리스트에서 회원상세로 넘기기 (POST방식) (0) | 2022.04.16 |
[오늘의집 ] 회원고객 사진 이미지 첨부 구현 (0) | 2022.04.11 |