게시판 - 글 삭제

이태현·2025년 9월 17일

Web 개발

목록 보기
49/53
post-thumbnail

게시글 삭제

board_view.js

  // 게시글 삭제 버튼
  const btn_delete = document.querySelector("#btn_delete")
  if (btn_delete) {
    btn_delete.addEventListener("click", () => {
      if (confirm('삭제 하시겠습니까?')) {
        const f = new FormData()

        f.append('idx', params['idx'])
        f.append('bcode', params['bcode'])
        f.append('mode', 'delete')

        const xhr = new XMLHttpRequest()
        xhr.open('post', './pg/board_process.php', true)
        xhr.send(f)

        xhr.onload = () => {
          if (xhr.status == 200) {
            const data = JSON.parse(xhr.responseText)

            if (data.result == 'success') {
              alert('게시물이 삭제되었습니다.')
              location.href = './board.php?bcode=' + params['bcode']
            }
          } else if (xhr.status == 404) {
            alert('통신 실패 : ' + xhr.status)
          }
        }
      }
    })
  }

board_process.php

else if ($mode == 'delete') {
  $row = $board->view($idx);

  // 본문 이지미 삭제
  $img_array = $board->extract_image($row['content']);
  foreach ($img_array as $value) {
    if (file_exists('../' . $value)) {
      unlink('../' . $value);
    }
  }

  // 첨부 파일 삭제
  if ($row['files'] != '') {
    $filelist = explode('?', $row['files']);
    foreach ($filelist as $value) {
      list($file_src,) = explode('|', $value);
      unlink(BOARD_DIR . '/' . $file_src);
    }
  }
  $board->delete($idx);

  die(json_encode(['result' => 'success']));
}

Board Class - DB

  // 게시글 삭제
  public function delete($idx)
  {
    $sql = "DELETE FROM board WHERE idx=:idx";
    $stmt = $this->conn->prepare($sql);
    $params = [':idx' => $idx];
    $stmt->execute($params);
  }

결과


idx가 89번째인 게시글을 삭제해 보겠습니다.

현재 자유게시판

Before

After

마무리

다음 시간에는 드디어 게시글에 댓글을 작성해 보도록 하겠습니다.

감사합니다.

profile
이해하고 분석하고 지배한다

0개의 댓글