MENU

assets

css

style.css

.forum-list { margin: 20px; }
.thread-title { font-size: 18px; }

js

forum-ajax.js

document.addEventListener('DOMContentLoaded', function() {
    document.addEventListener('click', function(event) {
        if (event.target.classList.contains('like-button')) {
            var postId = event.target.getAttribute('data-post-id');
            var xhr = new XMLHttpRequest();
            xhr.open('POST', forumAjax.ajax_url, true);
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            xhr.onload = function() {
                if (xhr.status === 200) {
                    var response = JSON.parse(xhr.responseText);
                    if (response.success) {
                        document.querySelectorAll('.likes-count[data-post-id="' + postId + '"]').forEach(function(el) {
                            el.textContent = '(いいね: ' + response.data.likes + ')';
                        });
                        document.querySelectorAll('.like-button[data-post-id="' + postId + '"]').forEach(function(el) {
                            el.textContent = response.data.liked ? 'いいねを取り消す' : 'いいね';
                        });
                    } else {
                        alert('いいねに失敗しました: ' + response.data.message);
                    }
                }
            };
            xhr.send('action=add_like&post_id=' + postId);
        }
    });
});
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする


目次