0

like現在、ボタンのコードに少し AJAX を実装しようとしています。画面にLikeとボタンを表示しています。DislikeデータベースをチェックするためにAJAXリクエストを行い、結果に応じます。ボタンの 1 つが非表示になります。

ここに私のスクリプト:

<script type="text/javascript">
    function check(){
        var urliditem = document.location.href;
        var splitted = urliditem.split('item=');
        var id = splitted[1];

        $.post(
            "ajax/likes.php",
            { id: id },
            function(check){
                alert(check);
                if (check == 1){
                    //show the Like button
                    $("#dislike").hide();
                }
                else if (check == 0){
                    //show the Dislike button
                    $("#like").hide();
                }
                else{
                    alert('An error has occured');
                }
            }
        );  
    }

    $(document).ready(function() {
        $("#test").click(function(e){
            e.preventDefault();
            check();
        });
    });
</script>

AJAX リクエストから結果が得られたかどうかを確認しましたが、呼び出し後に if/else ステートメントが機能していないようです。理由がわかりません。機能しないのは、おそらく show()/hide() 関数です。

何か案が ?私のスクリプトは正しいですか?

ボタン

<?php
    echo '<div id="dislike" class="likes">'.$donneeitem['likes'].' ♥&lt;/div><a class="btn-primary btn pull-right" href="index.php?page=action&action=unlikeitem&id='.$_GET['item'].'">Unlike</a>';
    echo '<div id="like" class="likes">'.$donneeitem['likes'].' ♥&lt;/div><a class="btn-primary btn pull-right" href="index.php?page=action&action=likeitem&id='.$_GET['item'].'">Like</a>';
?>

ajax/likes.php

    $check = db_query('SELECT * FROM likes_item WHERE user_id = ? AND item_id = ?', array($_SESSION['mc']['id'], $item_id))->fetchColumn();
    if ($check>0) {
        echo 0; //To show the Dislike button
    }
    else {
        echo 1; //To show the Like button
    }
4

1 に答える 1