채택완료

페이지 갯수 만큼 좋아요 이벤트 일어나는데 이유를 모르겠어요 도와주세요

2022-07-27 (수) 22:40:27 2,574

991484400_1658929100.9915.png

latest.skin.php에 만들었는데 좋아요를 누르면 저렇게 숫자가 바로 바뀌고 했으면 좋겠는데 추천이 취소되었습니다라는 문장이랑 좋아요가 글이 올라는 갯수만큼 이벤트가 반복되서 어찌해야할지 모르겠습니다.

Copy
<?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

include_once(G5_LIB_PATH.'/thumbnail.lib.php');

 

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨

add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);

$thumb_width = 297;

$thumb_height = 212;

$list_count = (is_array($list) && $list) ? count($list) : 0;

?>

 

<div class="pic_li_lt">

   

<h2 class="lat_title"><a href="<?php echo get_pretty_url($bo_table); ?>"><?php echo $bo_subject ?></a></h2>

 

    <ul>

    <?php

    for ($i=0; $i<$list_count; $i++) {

       

        $img_link_html = '';

       

        $wr_href = get_pretty_url($bo_table, $list[$i]['wr_id']);

        //좋아요

        $good_href = G5_BBS_URL.'/good.php?bo_table='.$bo_table.'&wr_id='.$list[$i]['wr_id'].'&good=good';

        //싫어요

        $nogood_href = G5_BBS_URL.'/good.php?bo_table='.$bo_table.'&wr_id='.$list[$i]['wr_id'].'&good=nogood';

 

    ?>

   

        <li>

            <?php echo $img_link_html; ?>

            <?php

            if ($list[$i]['icon_secret']) echo "<i class=\"fa fa-lock\" aria-hidden=\"true\"></i><span class=\"sound_only\">비밀글</span> ";

 

            echo "<a href=\"".$wr_href."\" class=\"pic_li_tit\"> ";

           

            if ($list[$i]['ca_name']) {

                echo  "<span class =\"lt_ca\">" ."[{$list[$i]['ca_name']}]". "</span>";

            }

            // ------------------------------------

     

             //  ---------------------------------------------좋아요 구현 완료

            if ($list[$i]['is_notice'])

                echo "<strong>".$list[$i]['subject']."</strong>";

            else

                echo $list[$i]['subject'];

       

                    echo "</a>";

 

 

        ?>

 

            <div class="lt_info">

             <!-- <a href="<?php echo $good_href; ?>"><?php echo "<span class=\"lt_good\"><i class=\"fa fa-heart\"></i> ".$list[$i]['wr_good']."</span>"; ?></a> -->

   

            <span class="lt_v_act_gng">        

                <a href="<?php echo $good_href; ?>" id="lt_good" class="lt_v_good"><?php echo "<span class=\"lt_good\"><i class=\"fa fa-heart\"></i> </span>"; ?><strong><?php echo ($list[$i]['wr_good']) ?></strong></a>

                <b id="lt_v_act_good"></b>

            </span>



 

                 <!-- <a href="<?php echo $nogood_href; ?>"id="lt_nogood" class="lt_v_nogood"><?php echo "<span class=\"lt_good\"><i class=\"fa fa-heart-o\"></i> ".$list[$i]['wr_nogood']."</span>"; ?></a> -->

                 <!-- <?php echo "<span class=\"lt_cmt\"><i class=\"fa fa-comment-o\"></i>" .$list[$i]['wr_comment']."</span>"; ?>   -->

           

        </br>      

 




 

<script>

$(function() {

    // 추천, 비추천

    $("#lt_good").click(function() {

        var $tx;

        if(this.id == "lt_good")

            $tx = $("#lt_v_act_good");

 

        excute_good(this.href, $(this), $tx);

        return false;

    });

});

 

function excute_good(href, $el, $tx)

{

    $.post(

href,

        { js: "on" },

        function(data) {

if(data.error) {

alert(data.error);

                return false;

            }




 

if(data.count) {

    $el.find("strong").text(number_format(String(data.count)));

}

 

if(data.msg){

    $tx.stop().hide();

    $tx.text(data.msg);

    $tx.fadeIn(200).delay(2500).fadeOut(200);

}



 

        }, "json"

    );

}

</script>







 

    <?php }  ?>

    <?php if ($list_count == 0) { //게시물이 없을 때  ?>

    <li class="empty_li">게시물이 없습니다.</li>

    <?php }  ?>

    </ul>

    <!-- <a href="<?php echo get_pretty_url($bo_table); ?>" class="lt_more"><span class="sound_only"><?php echo $bo_subject ?></span>더보기</a> -->

 

</div>

</script>

이게 latest코드인데 어디가 문제인지 말씀만 해주시면 제가 고치고 싶어요 도와주세요!!

|

답변 2개 / 댓글 3개

채택된 답변
+20 포인트

for문안에 id값이 반복되요.. id는 고유해야쥬...

스크립트도 list_count만큼 계속 만들어지구요

힌트는 여기까지~

답변에 대한 댓글 3개

처음에는 무슨말인지 몰랐는데 이해가 되네요 for문에 때문에 id값이 반복되서 반복적으로 나온것이었군요 이해가 됬습니다
혹시 이게 누를떄는 업데이트가 되는데 한번 누르고 다시 새로고침을 하면 좋아요 수가 전에 있던 숫자로 바뀌는데 이부분은 어떻게 해결 할 수 있을까요?
새로고침으로 증가값이 원래대로 돌아온다면 DB에 실질적으로 안 들어갔다는
이야기인데 수정한 소스를 봐야 알 수 있습니다.
2022-07-28 (목) 01:09:48

한가지 더 팁을 드리자면 for 내부에 스크립트 넣지말고 외부로 빼시고

펑션에 변수까지 넣어서 날리세요..

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