제이쿼리를 이용하여 게시판의 순서를 바꿨습니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
제이쿼리를 이용하여 게시판의 순서를 바꿨습니다.

QA

제이쿼리를 이용하여 게시판의 순서를 바꿨습니다.

본문

 <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

네 db에서 마찬가지로 업데이트로 게시글의 번호를 바꾸어주어야합니다.

참고소스 하나 첨부합니다.
완벽한 소스는 아니나
대략 어떤느낌인지 보시기바랍니다.

$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>";

ajax등으로 DB도 변경해주셔야 하겠습니다.

댓글 같은게 있다면 무작정 일련번호를 바꾸시면 안되고..

분석이 필요합니다.

네 지금 ajax를 이용하여 db변경을 해주려고 하는데..

$.ajax({
        url: '/move_event.php',
        type: 'post',
        dataType: 'json',
        data: {var1: '변수1', var2:'변수2'},
        success: function(data) {
            console.log(data);
        }
    });

이렇게 해주는게 맞는지요?

data에 무얼 넣어주어야하는지 모르겠습니다..

어떤 변수를 말하는건지..흠;

data는 wr_id가 넘어가야겠죠
게시물의 번호가 있어야 해당 게시물의 번호를 db에서 찾아서 변경 할테니까요
딱 봐도 필요한변수가 최소 2가지가 존재하리라고 생각되네요
1.해당 게시물의 번호
2.게시물을 up,down의 이벤트 동작
이렇게 최소 2가지는 넘겨주고
다음 move_event.php 파일에서 해당 게시물 번호의 동작이 up이라면 바로위에있는 게시물의 번호를 찾아서 위에있는 게시물은 down으로 db에서 게시물의 번호(num,wr_id,wr_parent)등
필요한 부분의 값을 2개의 게시글을 스왑(교체) 해줍니다.
그러면 해당 게시물은 올라갈것이고 기존에 위에있던 게시물은 내려오겠죠
이부분만 건들여서 되는건아니고
board_new 테이블에서도 해당 게시물의 번호를 바꾸어줘야하고
board_file 테이블에서도 해당 게시글의 등록된 파일의 번호를 교체해줘야합니다.
그리고 댓글이 있을경우도 있기때문에
댓글들의 모든 번호를 다시 교체해주어야합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 124,364 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT