안녕하세요,

RXE 스토리 대화방이나, 공식 게시판에 가끔 나타나서 도움을 받고 쏙 도망가는 아르키엘입니다.

 

# 기능의 니즈

 

이전부터 항상 스킨을 커스터마이징 하고, 게시판 또는 다른 모듈의 페이지를 만들어서 원하는 기능을 만드는데에는 조금 능숙해서 이것저것 하다보니 필요해진 것들이 있었습니다.

 

  • 게시판 작성 후 삭제를 페이지 이동 하지 않고 삭제 (AJAX)
  • 댓글 작성시 페이지 이동하지 않아야함(대댓글 - AJAX)
  • 댓글 삭제도 마찬가지로 AJAX로 해야함.

 

# 게시글 삭제를 AJAX화 해보기

 

가장 먼저 첫번째의 게시글 삭제는 구글로 검색해 보니 EOND님의 게시글이 보였습니다.
게시판-댓글 페이지 이동없이 삭제하기 이 게시글을 보고 XML을 임포트 하고 정상적으로 작동했습니다.

 

작동했는데....? 뭔가 이상하단 느낌을 받았습니다.

최근 예쁘다고 스킨을 구매했던 점장님의 스킨만 하더라도 페이지 이동 없이 게시글을 삭제하고 예쁜 팝업도 뜨는데.. 왜 이렇게 해야할까? 하면서 고민하며 일단 넘겼습니다.

 

그러다 보니 RXE 스토리에 도움을 청해보니 아래 팁이 토도독 하고 떨어졌죠.

<a class="delete_document" href="#" data-document-srl="{$oDocument->document_srl}">삭제</a>
<script>
    $('.delete_document').on('click', function() {
        exec_json('board.procBoardDeleteDocument', {
            document_srl: $(this).data('document-srl')
        }, function(data) {
            // 삭제 후 실행할 스크립트 (예: 페이지 새로고침)
        });
    });
</script>

 

XE때도 그랬고, RXE도 그렇고 exec_json 이라는 함수로 게시판/댓글 등에 대한 기능을 커스터마이징 할 수 있다는 내용입니다.

 

그렇게 액션이 필요한 버튼 또는 A Tag에 작업 후 스크립트를 작업해주니.. 성공적으로 게시글을 삭제할 수 있었습니다.

 

& 그렇다면 왜 XML을 임포트한걸까?

궁금해서 문서들의 기간을 찾아보기로 했습니다.

과거의 게시글들도 2018년 ~ 2020년 까지 게시글이고 보아하면 과거의 XE에서 제이쿼리를 채택하기 전에 사용하던 팁들이 돌고 돌아 지금처럼 사용되던 것이란걸 알 수 있었습니다.

 

물론 최근이야, XE1도 제이쿼리를 사용하기 시작했고 그에 따른 자료들도 조금씩 점차 제이쿼리를 따라 사용하기 시작했지만.. 팁들이나 과거 웹마스터 분들께서 올려주시는 팁들은 제이쿼리 친화적이지 않았던 것이겠죠.

 

# 회고하며

필요한 기능이 있다면, 과거 판매된 유사한 또는 동일한 기능이 있는 스킨을 구매하고 그 스킨을 커스터마이징 하거나 참고하여 제게 맞는 방식대로 뜯어 고치곤 했습니다. 하지만 이 방법도 결국 나중에 고객에게 납품하거나 서비스 할때 문제가 된다는 걸 느꼈습니다.

 

이런 방식으로는 발전할 수 없다는 걸 느꼈고, 백엔드에서만 머물지 않고 프론트엔드로 넘어와 더 발전하고 앞단과 뒷단 모두 잘 할 수 있는 웹사이트 운영자와 개발자가 되기를 기원하며 나 자신의 발전도 도모하면 좋겠다 생각했습니다.
 

그래서 지금부터라도 이기적이지만 나중의 저를 위해서라도 게시글을 하나 둘 씩 써내려 갈까 합니다.

다음에는 댓글을 삭제할때 ajax처리하거나 대댓글을 달때 ajax처럼 보이게 하거나 하는것을요.

 

시국이 시국이니 만큼 스터디 등의 모임은 만들 수 없어도, 우리는 이미 모임을 가지고 있잖아요? XETOWN이라는 가상 장소에서 궁금한 것들을 물어보고 필요한 것들을 만들어주시는 개발자님들과 운영자님이 계시는 것 처럼 저도 조금씩 뭔가 해볼까 합니다.

 

  • profile
    오, 이런 팁 기대만발입니다~!
  • profile
    댓글 ajax 매우 기대되네요!!
  • ?
    본문에서 말하신 XML은 폼 전송 시 입력값 검증을 위한 기능과 데이터 전송, 결과를 받은 후 콜백 함수 호출까지 일련의 과정을 정의한 파일입니다. 데이터 전송은 마찬가지로 jQuery ajax로 처리됩니다.

    정의된 동작을 그대로 활용하는 곳에서는 코드 반복을 줄일 수 있지만 결과를 받은 후 동작을 변경하려면 번거롭기 때문에 별도로 동작을 구현하게되죠.
  • ? profile
    그렇군요.

    생각보다 심오한 내용들이 있다는 걸 이제 알게 되었습니다.
    필요에 따라서는 xml을 임포트 하고 폼을 전송하는 경우도 있다는 말씀으로 이해하면 될까요?
  • profile ?
    주로 폼 입력값 검증이 필요한.. 회원가입, 글쓰기 폼 등에서 쓰입니다. 브라우저에서도 체크하고 php코드에서도 입력값 검증하고요(ajax로 바로 보낼걸 대비해서).
    약간의 자동화 처리에 사용된거죠.

    입력 값 검증이 필요없거나 임의로 검증을 한다면 이걸 사용할 이유는 없습니다.
  • ? profile
    그렇군요..

    감사합니다 (__)