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

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개
2022-07-28 (목) 01:19:39
처음에는 무슨말인지 몰랐는데 이해가 되네요 for문에 때문에 id값이 반복되서 반복적으로 나온것이었군요 이해가 됬습니다
2022-07-28 (목) 01:22:09
혹시 이게 누를떄는 업데이트가 되는데 한번 누르고 다시 새로고침을 하면 좋아요 수가 전에 있던 숫자로 바뀌는데 이부분은 어떻게 해결 할 수 있을까요?
ifelse
2022-07-28 (목) 11:58:16
새로고침으로 증가값이 원래대로 돌아온다면 DB에 실질적으로 안 들어갔다는
이야기인데 수정한 소스를 봐야 알 수 있습니다.
이야기인데 수정한 소스를 봐야 알 수 있습니다.
2022-07-28 (목) 01:09:48
한가지 더 팁을 드리자면 for 내부에 스크립트 넣지말고 외부로 빼시고
펑션에 변수까지 넣어서 날리세요..
답변을 작성하려면 로그인이 필요합니다.