반응형
detail.jsp
// 댓글수정 comment-btn 버튼 눌렀을 때 cno값, commentcontent값 가져오는 function 만들기
// 이벤트 핸들러
$(document).on('click', ".comment-btn", function(){
// 데이터 추출
let cno = $(this).prev().val(); // 댓글 번호
let recomment = $('.commentcontent').val(); // 수정할 댓글 내용
// Ajax 비동기 요청
$.ajax({
url : './recomment', //주소
type : 'post', //get, post
dataType : 'text', //수신타입 json
data : {'cno' : cno, 'comment' : recomment}, //보낼 값
success : function(result){
alert("통신 성공! : " + result);
},
error: function(error){ // 통신오류
alert("문제 발생?!!???!?!?! 도대체 왜?!?!? " + error);
}
}); // end ajax
});
Recomment.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 파라미터 값을 받아와서 콘솔에 출력 (작동 확인)
System.out.println(request.getParameter("cno"));
System.out.println(request.getParameter("comment"));
// 세션 확인
HttpSession session = request.getSession();
int result = 0;
// 세션에서 "mid"속성이 존재하고, "cno"가 정수로 변환 가능하며, "comment"가 null이 아닌 경우
if(session.getAttribute("mid") != null && Util.intCheck2(request.getParameter("cno"))
&& request.getParameter("comment") != null) {
// 위의 조건이 만족된 경우 CommentDTO 객체 생성하고 "mid"값 설정
CommentDTO dto = new CommentDTO();
dto.setMid((String)session.getAttribute("mid"));
dto.setCno(Util.str2Int2(request.getParameter("cno"))); // 정수로 변환
dto.setComment(Util.addBR(request.getParameter("comment")));
CommentDAO dao = new CommentDAO();
result = dao.commentUpdate(dto);
}
PrintWriter pw = response.getWriter();
pw.print(result);
}
}
CommentDAO.java
public int commentUpdate(CommentDTO dto) {
// 데이터베이스 연결 설정
Connection con = db.getConnection();
PreparedStatement pstmt = null;
// 댓글 테이블에서 comment 컬럼 업데이트하는 sql문
String sql = "UPDATE comment SET ccomment=? "
+ "WHERE cno=? AND mno=(SELECT mno FROM member WHERE mid=?)";
int result = 0;
try {
pstmt = con.prepareStatement(sql); // 객체 생성
pstmt.setString(1, dto.getComment()); // 매개변수(댓글 내용) 설정
pstmt.setInt(2, dto.getCno());
pstmt.setString(3, dto.getMid());
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(null, pstmt, con);
}
return result;
}
}
반응형
'개발 공부 Today I Learned' 카테고리의 다른 글
[국비 49일차 TIL] 어드민의 게시글 관리 페이지 불러오기 (0) | 2024.01.30 |
---|---|
[국비 48일차 TIL] 관리자 페이지 설정 member, admin (1) | 2024.01.26 |
[국비 46일차 TIL ] 댓글 삭제 수정 기능 구현 (0) | 2024.01.24 |
[국비 45일차 TIL] 방문 흔척 찾기, 게시글에 로그인 ip 추가 (0) | 2024.01.23 |
[국비 44일차 TIL] 댓글 삭제 오류 해결 (HeidiSQL 쿼리문 수정) (1) | 2024.01.23 |
댓글