<input type="hidden" name="refBoardNo" value="${board.boardNo }">
<table align="center" width="500" border="1">
<tr>
<td><textarea rows="3" cols="55" placeholder="내용을 작성하세요"
name="replyContents" id="replyContents" required="required"></textarea></td>
<td>
<button id="rSubmit">등록하기</button>
</td>
</tr>
</table>
$('#rSubmit').on("click", function() {
var replyContents = $("#replyContents").val();
var refBoradNo = "${board.boardNo}"
$.ajax({
url : "/board/replyAdd.kh",
data : {
"replyContents" : replyContents,
"refBoardNo" : refBoradNo
},
type : "post",
success : function(result) {
if (result == "success") {
alert("등록성공")
}
$('#replyContents').val('') //댓글 등록시 댓글 등록창 초기화
getReplyList(); //등록후 댓글 목록 불러오기 함수 실행
//DOM 조작 함수호츨 등 가능
},
error : function() {
alert("등록 실패")
}
})
})
$('#replyContents').val('')
를 통해 replyContens 영역에 값을 지워 초기화 하고 getReplyList()
;를 실행해 댓글 목록을 불러들인다.<table align="center" width="500" border="1" id="rtb">
<thead>
<td colspan="4"><b id="rCount">댓글목록</b></td>
</thead>
<tbody>
</tbody>
function getReplyList() {
var board = "${board.boardNo}";
$.ajax({
url : "/board/replyList.kh",
data : {
"boardNo" : board
},
type : "get",
success : function(result) { //댓글목록 불러오는 함수
var $tableBody = $('#rtb tbody'); //$는 의미없음 그냥 변수명 중 하나
$tableBody.html(''); //tbody를 초기화 시켜야 댓글 목록의 중첩을 막을수 있음 아니면 등록할떄마다 append로 이어짐
$('#rCount').text("댓글 ("+result.length+")") //댓글수 출력
if (result != null) {
console.log(result);
for ( var i in result) {
var $tr = $("<tr>");
var $rWriter = $("<td width='100'>").text(
result[i].replyWirter);
var $rContent = $("<td>").text(
result[i].replyContents);
var $rCreatDate = $("<td width='100'>").text(
result[i].rCreateDate);
var $btnArea = $("<td width='80'>").append(
"<a href='modifyreply(${board.boardNo})'>수정</a>").append(
"<a href='#'>삭제</a>");
$tr.append($rWriter);
$tr.append($rContent);
$tr.append($rCreatDate);
$tr.append($btnArea);
$tableBody.append($tr);
}
}
},
error : function() {
console.log("요청실패");
}
})
}
var $tableBody = $('#rtb tbody');
for ( var i in result) {
var $tr = $("<tr>");
var $rWriter = $("<td width='100'>").text(
result[i].replyWirter);
var $rContent = $("<td>").text(
result[i].replyContents);
var $rCreatDate = $("<td width='100'>").text(
result[i].rCreateDate);
var $btnArea = $("<td width='80'>").append(
"<a href='modifyreply(${board.boardNo})'>수정</a>").append(
"<a href='#'>삭제</a>");
$tr.append($rWriter);
$tr.append($rContent);
$tr.append($rCreatDate);
$tr.append($btnArea);
$tableBody.append($tr);
}
.append를 활용해 해당변수에 저장된 태그를 계속 tr변수에 더하여 해당 tbody태그 아래에 더해질수 있도록 만든다.
$tableBody.html('');
@ResponseBody
@RequestMapping(value = "/board/replyList.kh", produces = "application/json;charset=utf-8", method = RequestMethod.GET)
public String boardReplyList(@RequestParam("boardNo") int boardNo) {
int bno = (boardNo == 0) ? 1 : boardNo;
List<Reply> rList = bService.PrintAllReply(bno);
if (!rList.isEmpty()) {
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
return gson.toJson(rList);
}
return null;
}
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
코드를 사용하였다.<button onclick='modifyreply("+result[i].replyNo+")'>수정</button>
function modifyreply(rNo) {
$.ajax({
url : "/board/replyModi.kh",
data : {
"replyNo" : rNo,
},
type : "get",
success : function(result) {
var $td = $("<td colspan='3'>");
var $textarea= "<textarea rows='3' cols='55' placeholder='내용을 작성하세요' name='replyContents' id='replyContents"+rNo+"' required='required'>"
+result.rContents+"</textarea>"
var apTd = "<td><button onclick='modifyDo("+rNo+")'>수정하기</button> "
$td.html($textarea)
console.log(result.rContents);
$('#'+rNo).html(''); //현재 댓글 출력창의 tr부분을 비운다
$('#'+rNo).append($td).append(apTd); //비워진 tr에 td와 apTd를 넣어 수정창으로 바꾼다
},
error : function() {
alert("등록 실패")
}
})
}
success : function(result)
의 result가 해당 댓글번호의 도매인값이다var $tr = $("<tr id="+result[i].replyNo+">");
@ResponseBody
@RequestMapping(value = "/board/replyModi.kh", produces = "application/json;charset=utf-8", method = RequestMethod.GET)
public String selectOneReply(@RequestParam("replyNo") int replyNo) {
Reply reply = bService.printOneReply(replyNo);
JSONObject jsonObj = new JSONObject();
jsonObj.put("rContents",reply.getReplyContents());
return jsonObj.toString();
}
function modifyDo(rNo){
var replyContents = $('#replyContents'+rNo).val();
$.ajax({
url : "/board/modifireply.do",
data : {
"replyContents" : replyContents,
"replyNo" : rNo
},
type : "post",
success : function(result) {
if (result == "success") {
alert("등록성공")
}
getReplyList(); //등록후 댓글 목록 불러오기 함수 실행
//DOM 조작 함수호츨 등 가능
},
error : function() {
alert("등록 실패")
}
})
}
var replyContents = $('#replyContents'+rNo).val();
로 정의해주었다,