0

我的网站上有一个喜欢/不喜欢的帖子,当我点击喜欢按钮时,我希望 check2 的值显示在 like 旁边,而无需刷新页面即可查看。目前我会点击喜欢并插入数据,但只显示在页面刷新上。我对这种东西绝望了。

这是按执行顺序排列的代码。

谢谢你的帮助。

发布喜欢

echo "<div class='stream_option'><a id='likecontext_".$streamitem_data['streamitem_id']."' style='cursor:pointer;' onClick=\"likestatus(".$streamitem_data['streamitem_id'].",this.id);\">";
if($checklikes>0){
echo "Unlike";
}else{
echo "Like";
}
echo "</a> ";
$check2 = user_core::print_like_count($streamitem_data['streamitem_id']);
if($check2>0){
echo "(".$check2.")";
}

阿贾克斯函数

function likestatus(postid,contextid){
var obj = document.getElementById(contextid);
if(obj.innerHTML=="Like"){
obj.innerHTML="Unlike";
}else{
obj.innerHTML="Like";
}
$.post("../include/like_do.php", { streamitem_id: postid} );
}

喜欢做

$check = user_core::check_liked($_SESSION['id'],$_POST['streamitem_id'],1);

user_core::do_like($_SESSION['id'],$_POST['streamitem_id'],1);

    if($check==0){
    ?>
    <?php
    }else{
    ?>
    <?php
    }
}
else{
echo "<script>alert('Error liking post');</script>";
}
?>

USER_CORE

 function check_liked($id,$streamid,$value){

            $check      =   "SELECT feedback_id FROM streamdata_feedback WHERE feedback_streamid=$streamid AND feedback_userid=$id AND feedback_rating=$value";
            $check1     =    mysql_query($check);
            $check2     =    mysql_num_rows($check1);
        return $check2;
        }

        function print_like_count($streamid){
                $check      =   "SELECT feedback_id FROM streamdata_feedback WHERE feedback_streamid=$streamid AND feedback_rating=1";
                $check1     =    mysql_query($check);
                $check2     =    mysql_num_rows($check1);
                if($check2>0){
                echo "(".$check2.")";
                }
        }
4

1 回答 1

1

您正在寻找的是使用 DHTML 更改点赞值的 AJAX 提交。

<script language="javascript">
    $(".likeButton").click(function() {
        $.post("likeProcessor.php", {
            id: $(this).attr('id')
        }, function(data) {
            $("#likeIndicator" + $(this).attr('id')).html(data);
        });
</script>

然后,您的 likeProcessor 脚本将简单地返回该项目的点赞数。

注意:这是伪代码,可让您了解需要发生的事情。有关 jQuery 和 Ajax 的更多信息,RTM 分别位于http://www.w3schools.com/jquery/default.asphttp://www.w3schools.com/ajax/default.asp

于 2012-07-26T20:39:35.773 回答