form tag를 사용해서 submit 버튼을 누를시 comment_ok.php로 form 내용들을 전달하고 insert 한다. insert가 성공할 시 해당 글에 대한 모든 댓글을 출력하는 getAllList(); 를 호출한다.
호출 받은 getAllList()는 comment_list.php?board_num='게시물 번호' 으로 요청하고 요청받은 comment_list.php는 select 쿼리를 실행하고 배열 형태로 댓글 데이터를 담고 그 배열을 json 형태고 변환 시킨다음 반환한다.
화면.php에 있는 getJSON을 통해서 json 데이터를 받고 div에 넣는다.
게시글에 들어오자마자 댓글을 보게 할려면
$(document).ready(function(){ getAllList(); });
를 통해 바로 출력시킨다.
화면.php
<script> $(document).ready(function(){ getAllList(); }); var str = ""; function getAllList(){ var board_num = $("#board_num").val(); console.log("getAllList()"); console.log("board_num" + board_num); $.getJSON("comment_list.php?board_num="+board_num, function(data){ console.log(data); $(data).each(function(){ console.log(data); str += "writer : "+this.writer+"<br> title : " + this.comment_title + "<br> content : " + this.comment_content + "<br>"; }); $("#replies").html(str); }); } $(document).on("click", "#comment_btn", function() { alert("click"); var formData = $("#comment_form").serialize(); $.ajax({ type : 'POST', url : 'comment_ok.php', data : formData, success : function(response){ if(response == 'success'){ alert("success"); getAllList(); } } }); }); </script>
등록처리하는.php (comment_ok.php)
<? include 'db_connect.php'; include 'session.php'; $board_num = $_POST['board_num']; $writer = $_POST['writer']; $comment_title = $_POST['comment_title']; $comment_content = $_POST['comment_content']; $sql = "insert into comment (board_num, writer, comment_title, comment_content, reg_date) values ('$board_num', '$writer', '$comment_title', '$comment_content', now())"; $result = mysql_query($sql) or die("Error : " . mysql_error()); if($result){ echo "success"; } ?>
댓글들 불러오는.php (comment_list.php)
<? include 'db_connect.php'; include 'session.php'; $board_num = $_GET['board_num']; $sql = "select * from comment where board_num = '$board_num' order by reg_date desc"; $result = mysql_query($sql) or die("Error : " . mysql_error()); $resultArray = array(); while($row = mysql_fetch_array($result)){ array_push($resultArray, array('comment_idx' => $row[0], 'writer' => $row[2], 'comment_title' => $row[3], 'comment_content' => $row[4])); } echo json_encode($resultArray); ?>