이 화면에서 체크박스를 표시한 게시글만 삭제하기 버튼을 클릭하면 지워지게 하고 싶었다
<!-- 내 게시글 삭제 -->
<update id="deleteBoard" parameterType="kr.co.Dal.my.model.MyBoardVO">
UPDATE
bard_tb
SET
bard_stts = 0
WHERE
bard_id = #{bard_id}
AND
bard_type = #{bard_type}
</update>
xml이 위와 같이 있어서 내가 체크박스를 눌렀을 때 가져와야 되는 정보는 bard_id와 bard_type의 정보가 필요했다
우선
리스트 전체기능을 불러올 때 bard_id와 bard_type을 이미 html로 한꺼번에 Model을 써서 가져왔기 때문에
체크박스 안에 타임리프 문법을 이용해서 bard_id와 bard_type을 넣어줬다.
<tbody th:each="board : ${boardList}">
<tr>
<td><input type="checkbox" th:data-bardid="${board.bard_id}" th:data-bardtype="${board.bard_type}" class="checkboxes"></td>
<td th:text="${board.bard_id}"></td>
<td th:text="${board.bard_type}"></td>
<td th:text="${board.bard_tit}"></td>
<td th:text="${board.bard_rdate}"></td>
<td th:text="${board.bard_cnt}"></td>
</tr>
</tbody>
Ajax를 통해서 삭제를 해줄 거 기 때문에 jsondata에 bard_id와 bard_type을 에 넣어주려 했는데
체크박스를 클릭했을 때 체크박스가 체크되어 있는 글의 bard_id와 bard_type을 가져와야 되기 때문에 js에서 배열을 이용해서 뽑아줬다.
let bardidArray = []; // 체크박스에 대한 bardid
let bardtypeArray = []; // 체크박스에 대한 bardtype
// 현재 체크박스의 속성 값을 배열에 추가
bardidArray = [];
bardtypeArray = [];
checkboxes.forEach(function(checkbox){
if (checkbox.checked) {
bardidArray.push(checkbox.getAttribute('data-bardid'));
bardtypeArray.push(checkbox.getAttribute('data-bardtype'));
console.log("bardidArray", bardidArray);
console.log("bardtypeArray", bardtypeArray);
}
});
let jsonData = {
bardidArray: bardidArray,
bardtypeArray: bardtypeArray
}
ajaxAPI("/my/MyBoard/deleteBoard", jsonData, "POST").then(response => {
confirm("정말 삭제 하시겠습니까?");
window.location.href = '/my/MyBoard';
})
}
이렇게 jsondata를 가져온 후 서비스에서 bard_id와 bard_type을 for문을 이용해 뽑아주고 데이터 형식을 바꿔주었다.
/* 게시글 삭제 */
public void deleteBoard(MyBoardVO myBoardVO){
log.warn("bard length: " + myBoardVO.getBardidArray().length);
log.warn("type length: " + myBoardVO.getBardtypeArray().length);
for (int i = 0; i < myBoardVO.getBardidArray().length; i++) {
log.warn("bardId: " + myBoardVO.getBardidArray()[i]);
log.warn("type: " + myBoardVO.getBardtypeArray()[i]);
int bardId = Integer.parseInt(myBoardVO.getBardidArray()[i]);
int bardType = Integer.parseInt(myBoardVO.getBardtypeArray()[i]);
myBoardVO.setBard_id(bardId);
myBoardVO.setBard_type(bardType);
myBoardMapper.deleteBoard(myBoardVO);
}
}
'project > team project' 카테고리의 다른 글
[DAL] 1:1 상담 네이버톡톡 연결하기 (0) | 2024.02.15 |
---|---|
[DAL] 1:1상담 카카오챗 연결하기 (1) | 2024.02.14 |
[DAL] 포인트/적립금 관련 쿼리 (스케줄러 설정) (1) | 2024.02.06 |
[DAL] 받아온 데이터 나누기 (핸드폰 번호 나누기) (0) | 2024.02.03 |