document.addEventListener("DOMContentLoaded", () => {
const btn_board_create = document.querySelector("#btn_board_create")
btn_board_create.addEventListener("click", () => {
const board_title = document.querySelector("#board_title")
const board_type = document.querySelector("#board_type")
if (board_title.value == "") {
alert("게시판 이름을 입력해 주세요.")
board_title.focus()
return false
}
const xhr = new XMLHttpRequest()
const f = new FormData()
f.append("board_title", board_title.value)
f.append("board_type", board_type.value)
f.append("mode", "input")
xhr.open("post", "pg/board_process.php", true)
xhr.send(f)
xhr.onload = () => {
if (xhr.status == 200) {
const data = JSON.parse(xhr.responseText)
// console.log(data)
if (data.result == "mode_empty") {
alert("Mode 값이 누락되었습니다.")
return false
} else if (data.result == "title_empty") {
alert("게시판 명이 누락되었습니다.")
board_title.focus()
return false
} else if (data.result == "btype_empty") {
alert("게시판 타입이 누락되었습니다.")
return false
} else if (data.result == "success") {
alert("게시판이 생성되었습니다.")
location.reload()
}
} else {
alert("통신 실패 " + xhr.status)
}
}
})
// 게시판 생성 버튼 클릭
const btn_create_modal = document.querySelector("#btn_create_modal")
btn_create_modal.addEventListener("click", () => {
board_title.value = ""
return false
})
})
<?php
include "../inc_common.php";
include "../../inc/dbconfig.php";
include "../../inc/board.php";
$board_title = (isset($_POST["board_title"]) && $_POST["board_title"] != "") ? $_POST["board_title"] : "";
$board_type = (isset($_POST["board_type"]) && $_POST["board_type"] != "") ? $_POST["board_type"] : "";
$mode = (isset($_POST["mode"]) && $_POST["mode"] != "") ? $_POST["mode"] : "";
if ($mode == "") {
$arr = ["result" => "mode_empty"];
die(json_encode($arr));
}
$board = new Board($db);
// 게시판 생성
if ($mode == "input") {
if ($board_title == "") {
$arr = ["result" => "title_empty"];
die(json_encode($arr));
}
}
if ($board_type == "") {
$arr = ["result" => "btype_empty"];
die(json_encode($arr));
}
// 게시판 코드 생성
$bcode = $board->bcode_create();
// 게시판 생성
$arr = [
"name" => $board_title,
"btype" => $board_type,
"bcode" => $bcode
];
$board->create($arr);
$arr = ["result" => "success"];
die(json_encode($arr));
<?php
// 게시판 관리 Class
class Board
{
private $conn;
// 생성자
public function __construct($db)
{
$this->conn = $db;
}
// 게시판 목록
public function list()
{
$sql = "SELECT idx, name, bcode, btype, cnt, DATE_FORMAT(create_at,'%Y-%m-%d %H-%i') AS create_at
FROM board_manage
ORDER BY idx ASC";
$stmt = $this->conn->prepare($sql);
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
return $stmt->fetchAll();
}
// 게시판 생성
public function create($arr)
{
$sql = "INSERT INTO board_manage(name, bcode, btype, create_at) values (:name, :bcode, :btype, NOW())";
$stmt = $this->conn->prepare($sql);
$stmt->bindParam(":name", $arr["name"]);
$stmt->bindParam(":bcode", $arr["bcode"]);
$stmt->bindParam(":btype", $arr["btype"]);
$stmt->execute();
}
// 게시판 코드 생성
public function bcode_create()
{
$letter = range("a", "z");
$bcode = "";
for ($i = 0; $i < 6; $i++) {
$r = rand(0, 25);
$bcode .= $letter[$r];
}
return $bcode;
}
}
다음 시간에는 테이블 인덱스(index)를 사용해 중복 처리 부분을 처리해 보겠습니다.
감사합니다.