AJAX를 사용하여 댓글을 쓰면 새로고침 없이 입력되게 하고싶어요.

1. 정확한 제품 또는 플러그인 이름

kboard_comment

 

2. 상세 내용

PC환경처럼 큰 화면에서는 괜찮은데, 모바일 작은화면 환경에서 댓글을 쓸때 자꾸 최상단으로 올라갔다가 anchor로 이동하다보니 화면이 흔들립니다.

그래서 AJAX로 새로고침없이 댓글이 입력되었으면 좋겠습니다. 어찌 접근해야 할까요?

 

아래와 같이 script를 만들어보긴 했는데, 500에러가 나네요..

3. 수정한 코드 내역 (있다면)

<script>
                function submitComment() {
    // 현재 선택된 라디오 버튼의 값을 가져옵니다.
    var selectedValue = document.querySelector('input[name="comment_content"]:checked').value;
    var nonce = document.getElementById('kboard-comments-execute-nonce').value;
    var referer = document.querySelector('input[name="_wp_http_referer"]').value;
    
    
    
    var data = {
        action: 'kboard_comment_insert', // 해당하는 액션 이름 설정
        content_uid: '<?php echo $content_uid; ?>', // 서버에서 받은 content UID
        comment_content: selectedValue, // 선택된 라디오 버튼의 값
        kboard_comments_execute_nonce: nonce, // nonce 값을 포함
        _wp_http_referer: referer, // referer 값을 포함
        media_group: '<?php echo kboard_media_group(); ?>' // 미디어 그룹 ID

        
    };

    // 로그인 상태가 아닐 때 사용자 이름과 비밀번호 필드가 존재하는지 확인
    var memberDisplayInput = document.getElementById('comment_member_display_<?php echo $content_uid?>');
    var passwordInput = document.getElementById('comment_password_<?php echo $content_uid?>');
    
    if (memberDisplayInput) {
        data.member_display = memberDisplayInput.value; // 사용자 이름
    }
    
    if (passwordInput) {
        data.password = passwordInput.value; // 비밀번호
    }
    
    jQuery.ajax({
        url: '<?php echo $commentURL->getInsertURL()?>', // 댓글 처리 URL
        type: 'POST',
        data: data,
        success: function(response) {
            console.log('Comment added successfully:', response);
            // 성공 시 추가적인 UI 업데이트나 페이지 리다이렉트를 할 수 있습니다.
        },
        error: function(xhr, status, error) {
            console.error("Error adding comment:", status, error);
        }
    });
}

                </script>

 

 

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요