제이쿼리를 이용하여 게시판의 순서를 바꿨습니다. 채택완료
<dd>
<button type="button" onclick="moveUp(this)">올리기</button>
<button type="button" onclick="moveDown(this)">내리기</button>
</dd>
<script type="text/javascript">
function moveUp(el){
var $tr = $(el).parent().parent(); // 클릭한 버튼이 속한 tr 요소
$tr.prev().before($tr); // 현재 tr 의 이전 tr 앞에 선택한 tr 넣기
}
function moveDown(el){
var $tr = $(el).parent().parent(); // 클릭한 버튼이 속한 tr 요소
$tr.next().after($tr); // 현재 tr 의 다음 tr 뒤에 선택한 tr 넣기
}
</script>
올리기 버튼을 누르면 리스트에서 글이 올라가고 내리기 버튼을 누르면 글이 밑으로 내려갑니다.
근데 새로고침을하거나 다른 게시판에 갔다가 다시 요 페이지로 오면
기존의 순서로 바껴있네요
이거 어떻게 해결해야하나요?
db를 만져야하는건가요?
답변 2개
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
ajax등으로 DB도 변경해주셔야 하겠습니다.
댓글 같은게 있다면 무작정 일련번호를 바꾸시면 안되고..
분석이 필요합니다.
답변에 대한 댓글 2개
$.ajax({
url: '/move_event.php',
type: 'post',
dataType: 'json',
data: {var1: '변수1', var2:'변수2'},
success: function(data) {
console.log(data);
}
});
이렇게 해주는게 맞는지요?
data에 무얼 넣어주어야하는지 모르겠습니다..
어떤 변수를 말하는건지..흠;
게시물의 번호가 있어야 해당 게시물의 번호를 db에서 찾아서 변경 할테니까요
딱 봐도 필요한변수가 최소 2가지가 존재하리라고 생각되네요
1.해당 게시물의 번호
2.게시물을 up,down의 이벤트 동작
이렇게 최소 2가지는 넘겨주고
다음 move_event.php 파일에서 해당 게시물 번호의 동작이 up이라면 바로위에있는 게시물의 번호를 찾아서 위에있는 게시물은 down으로 db에서 게시물의 번호(num,wr_id,wr_parent)등
필요한 부분의 값을 2개의 게시글을 스왑(교체) 해줍니다.
그러면 해당 게시물은 올라갈것이고 기존에 위에있던 게시물은 내려오겠죠
이부분만 건들여서 되는건아니고
board_new 테이블에서도 해당 게시물의 번호를 바꾸어줘야하고
board_file 테이블에서도 해당 게시글의 등록된 파일의 번호를 교체해줘야합니다.
그리고 댓글이 있을경우도 있기때문에
댓글들의 모든 번호를 다시 교체해주어야합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
완벽한 소스는 아니나
대략 어떤느낌인지 보시기바랍니다.
$table = $g5['write_prefix'].$_GET['bo_table'];
$inqty1 = ($_GET['mode']=="up")? ">" : "<";
$inqty2 = ($_GET['mode']=="up")? "asc" : "desc";
$inqty3 = ($_GET['mode']=="up")? "최상위" : "최하위";
$data_path = $g5[path]."/data/file/".$_GET['bo_table'];
$thumb_path = $data_path.'/thumb';
// MY ROW
$sel_my = sql_query("select * from $table where wr_id={$_GET[wr_id]}");
$my = sql_fetch_array($sel_my);
// TARGET ROW
$sel_target = sql_query("select * from $table where wr_id{$inqty1}{$_GET[wr_id]} order by wr_id {$inqty2} limit 1");
$target = sql_fetch_array($sel_target);
if($target['wr_id']){
//my 넘버를 임시로 바꾼후, target 넘버를 my로, my 넘버를 target으로..
sql_query("update $table set wr_id=99999, wr_num=99999, wr_parent=99999 where wr_id={$my[wr_id]} ");
sql_query("update $table set wr_id={$my[wr_id]}, wr_num={$my[wr_num]}, wr_parent={$my[wr_parent]} where wr_id={$target[wr_id]} ");
sql_query("update $table set wr_id={$target[wr_id]}, wr_num={$target[wr_num]}, wr_parent={$target[wr_parent]} where wr_id=99999 ");
//my 파일테이블도 마찬가지로 바꿈
sql_query("update {$g5[board_file_table]} set wr_id=99999 where bo_table='{$_GET[bo_table]}' and wr_id={$my[wr_id]}");
sql_query("update {$g5[board_file_table]} set wr_id={$my[wr_id]} where bo_table='{$_GET[bo_table]}' and wr_id={$target[wr_id]}");
sql_query("update {$g5[board_file_table]} set wr_id={$target[wr_id]} where bo_table='{$_GET[bo_table]}' and wr_id=99999");
@unlink($thumb_path."/".$my[wr_id]);
@unlink($thumb_path."/".$target[wr_id]);
//echo "<script type='text/javascript'>alert('변경되었습니다');</script>";
echo "<script type='text/javascript'>parent.document.location.reload();</script>";