채택완료

리스트에서 링크 클릭 시 뷰페이지에 안가고 조회수 증가하는 방법이 있을까요?

리스트에서 해당 게시글 클릭 시 뷰페이지에 안가고 조회수 증가하는 방법이 있을까요?

https://sir.kr/g5_skin/40277?sca=%EA%B2%8C%EC%8B%9C%ED%8C%90&sfl=wr_subject%7C%7Cwr_content&stx=%EC%9C%A0%ED%8A%9C%EB%B8%8C

지금 게시판 자체가 유튜브 팝업형 플로터로 되어있는데, 현재는 뷰페이지로 들어가야만 조회수가 오르는 상태여서요.. 가능한 방법을 참조할만한게 있을까요?

답변 1개 / 댓글 4개

채택된 답변
+20 포인트
2021-06-03 (목) 17:35:21

ajax 로 처리해야 될 듯 합니다.

1) [스킨 디렉토리]/list.skin.php

Copy
$(".popyt").click(function() {
    var _bo = '<?php echo $bo_table ?>';
    var _id = '<?php echo $wr_id ?>';
    $.ajax({
        url: '<?php echo $board_skin_url ?>/ajax_hit.php',
        type: 'POST',
        data: {bo_table : _bo, wr_id : _id},
        success: function(data) {
            //alert(data);
        }
    });

   ~

2) [스킨디렉토리]/ajax_hit.php (파일생성)

Copy
include_once('../../../common.php');  // 경로 중요

$write_table = $g5['write_prefix'] . $bo_table;

$result = sql_query(" update {$write_table} set wr_hit = wr_hit + 1 where wr_id = '{$wr_id}' ");

echo $result;

답변에 대한 댓글 4개

alert(data);

이걸로 확인해 보았는데 alert로 1이라는 알림이뜨고 조회수는 오르지 않는데 무엇이 문제일까요 ㅠㅠ?

인클루드 경로는 include_once('../../../../../common.php'); // 경로 중요 이렇게 경로 맞추어 진행하였습니다.
2021-06-03 (목) 18:10:09
'1' 은 true 의 의미이고, 쿼리 실행은 오류없이 정상적으로 되었다는 의미입니다.

쿼리는 정상적으로 실행이 되었지만.. 조회수는 오르지 않았다면..
sql문을 확인해 보는 것이 좋습니다.

$result = sql_query(" update {$write_table} set wr_hit = wr_hit + 1 where wr_id = '{$wr_id}' ");
->
echo " update {$write_table} set wr_hit = wr_hit + 1 where wr_id = '{$wr_id}' ";
$result = sql_query(" update {$write_table} set wr_hit = wr_hit + 1 where wr_id = '{$wr_id}' ");
로 수정한 뒤,
브라우저에서 [사이트주소]/skin/board/~/ajax.hit.php 로 접속하여 sql문을 확인해 볼 수 있습니다.
update g5_write_ set wr_hit = wr_hit + 1 where wr_id = '0'

정상작동 되고있는거 아닌가요 ..?
2021-06-03 (목) 18:21:14
wr_id 가 넘어가지 않았습니다.

관련해서 다음 부분을 추가/수정해야 될 듯 합니다.
<a data-video="<? echo $list[$i]['wr_10'];?>" class="popyt mov_b2" style="cursor:pointer;">
->
<a data-video="<? echo $list[$i]['wr_10'];?>" data-wr_id="<?php echo $list[$i]['wr_id'] ?>" class="popyt mov_b2" style="cursor:pointer;">

var _id = '<?php echo $wr_id ?>';
->
var _id = $(this).data('wr_id');

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