[LIKE5] 댓글 / 대댓글 작성하기

     

    댓글/대댓글 작성하기

     

    먼저 댓글의 경우 아래의 6개 항목이 insert 되어야 한다. 

    하지만, 실제로는 ✔된 3개의 항목들만 담아오면 된다.

     

    1. 댓글 번호 -> 자동생성

    2. 게시판 번호 -> ✔ 

    3. 회원 번호 -> ✔ 

    4. 댓글 내용 -> ✔ 

    5. 작성일 -> 자동생성

    6. 게시판 -> 게시글 번호로 카테고리를 조회해옴

     

    대댓글은 댓글보다 까다로운데 그 이유는 원댓글(ref_rep_no)과 댓글 깊이(ref_level)를 받아와야 하기 때문이다. 대댓글의 경우 ✔된 4개의 항목들만 값을 담아오면 된다.

     

    1. 댓글 번호 -> 자동생성

    2. 게시글 번호 -> ✔ 

    3. 회원 번호 -> ✔ 

    4. 댓글 내용 -> ✔ 

    5. 작성일 -> 자동생성

    6. 원댓글 번호 -> ✔ 

    7. 댓글 깊이 -> 원 댓글 : 1 , 대댓글 : 2

    8. 게시판 -> 게시글 번호로 카테고리를 조회해옴

     

     

     

     댓글 작성하기

     

    insertReply.bo로 댓글 작성에 필요한 3가지 데이터(게시글 번호, 댓글 내용, 회원 번호)를 뽑아서 Ajax 처리했다.

     

    만약 정상적으로 insert 되었다면 result > 0 일 것이고, status가 success라면 전체 댓글 리스트를 갱신하고, 기존에 작성했던 댓글 내용은 비워준다.

     

     

    대댓글 작성하기

     

    insertReplikes.bo로 대댓글 작성에 필요한 4가지 데이터(게시글 번호, 댓글 내용, 회원 번호, 원 댓글 번호)를 뽑아서 Ajax 처리했다.

     

    댓글과의 차이점은 바로 원댓글 번호를 대댓글의 참조 번호로 가져오는 것이다. (하단의 원댓글의 참조 번호 가져오는 방법 참고) repNo라는 매개변수를 받아서 refRepNo에 repNo(원 댓글 댓글 번호)를 넘길 수 있는 것이다.

     

     

     

    원 댓글의 참조 번호 가져오는 방법

    미리 댓글 조회할 때 input type="hidden"으로 원 댓글 번호를 넣어놓고, inser-comments인 요소를 클릭할 때마다 원 댓글 번호($(this). prev(). val())를 매개변수로 하여 insertReplies를 호출했다.

     

     

    다음과 같이 DB에 정상적으로 담긴다. 댓글 번호 461과 462 모두 같은 게시글에 작성된 댓글이지만, 461의 경우 참조 댓글 번호(REF_REP_NO)는 0이고 댓글 깊이(REF_LEVEL)은 1 임을 확인할 수 있다. 이어서 댓글 번호 462의 경우 참조 댓글 번호는 461(원 댓글 번호)이고, 댓글 깊이는 2 임을 확인할 수 있다.

     

     

     

    728x90

    댓글