테스트 사이트 - 개발 중인 베타 버전입니다

추천 비추천 기능에서 취소기능은 없나요..?ㅠㅠ 채택완료

툥이 9년 전 조회 3,406

추천 비추천을 한 글에서 다시 취소를 하는 방법은 없는걸까요..?

구현하는 방법좀 알려주시면 감사하겠습니다..ㅠㅠ

 

</p><p><?php</p><p>include_once('./_common.php');</p><p> </p><p>@include_once($board_skin_path.'/good.head.skin.php');</p><p> </p><p>// 자바스크립트 사용가능할 때</p><p>if($_POST['js'] == "on") {</p><p>    $error = $count = "";</p><p> </p><p>    function print_result($error, $count)</p><p>    {</p><p>        echo '{ "error": "' . $error . '", "count": "' . $count . '" }';</p><p>        if($error)</p><p>            exit;</p><p>    }</p><p> </p><p>    if (!$is_member)</p><p>    {</p><p>        $error = '회원만 가능합니다.';</p><p>        print_result($error, $count);</p><p>    }</p><p> </p><p>    if (!($bo_table && $wr_id)) {</p><p>        $error = '값이 제대로 넘어오지 않았습니다.';</p><p>        print_result($error, $count);</p><p>    }</p><p> </p><p>    $ss_name = 'ss_view_'.$bo_table.'_'.$wr_id;</p><p>    if (!get_session($ss_name)) {</p><p>        $error = '해당 게시물에서만 추천 또는 비추천 하실 수 있습니다.';</p><p>        print_result($error, $count);</p><p>    }</p><p> </p><p>    $row = sql_fetch(" select count(*) as cnt from {$g5['write_prefix']}{$bo_table} ", FALSE);</p><p>    if (!$row['cnt']) {</p><p>        $error = '존재하는 게시판이 아닙니다.';</p><p>        print_result($error, $count);</p><p>    }</p><p> </p><p>    if ($good == 'good' || $good == 'nogood')</p><p>    {</p><p>        if($write['mb_id'] == $member['mb_id']) {</p><p>            $error = '자신의 글에는 추천 또는 비추천 하실 수 없습니다.';</p><p>            print_result($error, $count);</p><p>        }</p><p> </p><p>        if (!$board['bo_use_good'] && $good == 'good') {</p><p>            $error = '이 게시판은 추천 기능을 사용하지 않습니다.';</p><p>            print_result($error, $count);</p><p>        }</p><p> </p><p>        if (!$board['bo_use_nogood'] && $good == 'nogood') {</p><p>            $error = '이 게시판은 비추천 기능을 사용하지 않습니다.';</p><p>            print_result($error, $count);</p><p>        }</p><p> </p><p>        $sql = " select bg_flag from {$g5['board_good_table']}</p><p>                    where bo_table = '{$bo_table}'</p><p>                    and wr_id = '{$wr_id}'</p><p>                    and mb_id = '{$member['mb_id']}'</p><p>                    and bg_flag in ('good', 'nogood') ";</p><p>        $row = sql_fetch($sql);</p><p>        if ($row['bg_flag'])</p><p>        {</p><p>            if ($row['bg_flag'] == 'good')</p><p>                $status = '추천';</p><p>            else</p><p>                $status = '비추천';</p><p> </p><p>            $error = "이미 $status 하신 글 입니다.";</p><p>            print_result($error, $count);</p><p>        }</p><p>        else</p><p>        {</p><p>            // 추천(찬성), 비추천(반대) 카운트 증가</p><p>            sql_query(" update {$g5['write_prefix']}{$bo_table} set wr_{$good} = wr_{$good} + 1 where wr_id = '{$wr_id}' ");</p><p>            // 내역 생성</p><p>            sql_query(" insert {$g5['board_good_table']} set bo_table = '{$bo_table}', wr_id = '{$wr_id}', mb_id = '{$member['mb_id']}', bg_flag = '{$good}', bg_datetime = '".G5_TIME_YMDHIS."' ");</p><p> </p><p>            $sql = " select wr_{$good} as count from {$g5['write_prefix']}{$bo_table} where wr_id = '$wr_id' ";</p><p>            $row = sql_fetch($sql);</p><p> </p><p>            $count = $row['count'];</p><p> </p><p>            print_result($error, $count);</p><p>        }</p><p>    }</p><p>} else {</p><p>    include_once(G5_PATH.'/head.sub.php');</p><p> </p><p>    if (!$is_member)</p><p>    {</p><p>        $href = './login.php?'.$qstr.'&url='.urlencode('./board.php?bo_table='.$bo_table.'&wr_id='.$wr_id);</p><p> </p><p>        alert('회원만 가능합니다.', $href);</p><p>    }</p><p> </p><p>    if (!($bo_table && $wr_id))</p><p>        alert('값이 제대로 넘어오지 않았습니다.');</p><p> </p><p>    $ss_name = 'ss_view_'.$bo_table.'_'.$wr_id;</p><p>    if (!get_session($ss_name))</p><p>        alert('해당 게시물에서만 추천 또는 비추천 하실 수 있습니다.');</p><p> </p><p>    $row = sql_fetch(" select count(*) as cnt from {$g5['write_prefix']}{$bo_table} ", FALSE);</p><p>    if (!$row['cnt'])</p><p>        alert('존재하는 게시판이 아닙니다.');</p><p> </p><p>    if ($good == 'good' || $good == 'nogood')</p><p>    {</p><p>        if($write['mb_id'] == $member['mb_id'])</p><p>            alert('자신의 글에는 추천 또는 비추천 하실 수 없습니다.');</p><p> </p><p>        if (!$board['bo_use_good'] && $good == 'good')</p><p>            alert('이 게시판은 추천 기능을 사용하지 않습니다.');</p><p> </p><p>        if (!$board['bo_use_nogood'] && $good == 'nogood')</p><p>            alert('이 게시판은 비추천 기능을 사용하지 않습니다.');</p><p> </p><p>        $sql = " select bg_flag from {$g5['board_good_table']}</p><p>                    where bo_table = '{$bo_table}'</p><p>                    and wr_id = '{$wr_id}'</p><p>                    and mb_id = '{$member['mb_id']}'</p><p>                    and bg_flag in ('good', 'nogood') ";</p><p>        $row = sql_fetch($sql);</p><p>        if ($row['bg_flag'])</p><p>        {</p><p>            if ($row['bg_flag'] == 'good')</p><p>                $status = '추천';</p><p>            else</p><p>                $status = '비추천';</p><p> </p><p>            alert("이미 $status 하신 글 입니다.");</p><p>        }</p><p>        else</p><p>        {</p><p>            // 추천(찬성), 비추천(반대) 카운트 증가</p><p>            sql_query(" update {$g5['write_prefix']}{$bo_table} set wr_{$good} = wr_{$good} + 1 where wr_id = '{$wr_id}' ");</p><p>            // 내역 생성</p><p>            sql_query(" insert {$g5['board_good_table']} set bo_table = '{$bo_table}', wr_id = '{$wr_id}', mb_id = '{$member['mb_id']}', bg_flag = '{$good}', bg_datetime = '".G5_TIME_YMDHIS."' ");</p><p> </p><p>            if ($good == 'good')</p><p>                $status = '추천';</p><p>            else</p><p>                $status = '비추천';</p><p> </p><p>            $href = './board.php?bo_table='.$bo_table.'&wr_id='.$wr_id;</p><p> </p><p>            alert("이 글을 $status 하셨습니다.", '', false);</p><p>        }</p><p>    }</p><p>}</p><p> </p><p>@include_once($board_skin_path.'/good.tail.skin.php');</p><p>?></p><p>

 

good.php 소스입니다 ㅠㅠ 도와주세요..!

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
9년 전

1. 가장 쉬운 방법은 자기가 추천/비추천한 게시물인지 확인하는 코드를 넣어서

2. 추천버튼 대신 추천취소 / 비추천 대신 비추천취소 버튼을 보이게 해서

3. 버튼 누르면 내역을 삭제하고 카운트도 감소시키는 ajax를 실행하도록 만들면 됩니다

-- ajax를 모르면 그냥 링크로 내역을 삭제하는 화일을 호출해서 작업 후 원래 페이지로 돌아오는 코드를

    마지막에 넣으면 되겠습니다

 

코드를 만들어 놓고 안되는 부분 일부만 수정하는 것이 아니고 기능을 완전히 새로이 만들어 넣는 것이니 

의뢰 게시판으로 가야할 내용 같습니다

 

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인