window.CURRENT_BO_TABLE = "p2p"; window.ss_comment_token = "350d6d86cba9bebd6452c7d041fecb3ea639ebd8ab1b6a44b977a72f5d3af488"; window.AJAX_RECOMMEND_URL = "/theme/ranking/skin/board/rank/comment/ajax_comment_recommend.php"; (function($){ $(document).ready(function(){ $(document).on("click", ".post-like-btn", function(e){ e.preventDefault(); var $btn = $(this); var postId = $btn.data("id"); var liked = ($btn.data("liked") === "true"); var action = liked ? "cancel" : "recommend"; $.ajax({ url: window.AJAX_RECOMMEND_URL, type: "POST", dataType: "json", data: { wr_id: postId, action: action, bo_table: window.CURRENT_BO_TABLE, // 게시판 동일 ss_comment_token: window.ss_comment_token // 세션 토큰 동일 }, success: function(response){ if(response && response.success){ var newCount = response.newCount; // UI 업데이트 if(action === "recommend"){ $btn.data("liked", "true"); $btn.find("i").removeClass("far fa-heart").addClass("fas fa-heart text-danger"); } else { $btn.data("liked", "false"); $btn.find("i").removeClass("fas fa-heart text-danger").addClass("far fa-heart"); } var $countSpan = $btn.find(".like-count"); if($countSpan.length){ if(newCount > 0){ $countSpan.text(newCount).addClass("ms-2"); } else { $countSpan.text("").removeClass("ms-2"); } } } else { alert(response && response.message ? response.message : "추천 실패"); } }, error: function(xhr, status, error){ alert("서버 통신 오류: " + error); } }); }); }); })(jQuery);