Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 打印式计数,无需页面刷新_Php_Javascript_Jquery_Ajax - Fatal编程技术网

Php 打印式计数,无需页面刷新

Php 打印式计数,无需页面刷新,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我在我的网站上发布了一篇类似/不同的帖子,当我点击“喜欢”按钮时,我希望check2的值显示在“喜欢”旁边,而无需刷新页面即可看到它。目前,我会点击喜欢,它插入的数据,但只显示在页面刷新。我对这种东西没有希望了 下面是代码的执行顺序 谢谢你的帮助 柱状 echo "<div class='stream_option'><a id='likecontext_".$streamitem_data['streamitem_id']."' style='cursor:pointer;'

我在我的网站上发布了一篇类似/不同的帖子,当我点击“喜欢”按钮时,我希望check2的值显示在“喜欢”旁边,而无需刷新页面即可看到它。目前,我会点击喜欢,它插入的数据,但只显示在页面刷新。我对这种东西没有希望了

下面是代码的执行顺序

谢谢你的帮助

柱状

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.")";
}
像你一样
$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>";
}
?>

您需要的是一个使用DHTML的AJAX提交,以更改喜欢的内容的值

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

$(“.likeButton”)。单击(函数(){
$.post(“likeProcessor.php”{
id:$(this.attr('id'))
},函数(数据){
$(“#likeIndicator”+$(this.attr('id')).html(数据);
});
然后你的likeProcessor脚本将简单地返回该项目的like数


注意:这是一段伪代码,可以让您了解需要做什么。有关jQuery和Ajax的更多信息,请分别访问和获取RTM。

@dave您必须包含成功回调,才能更新页面上的任何内容。Chee Matt,将在几天前提供。是的,我注意到缺少的成功。我会将其添加到其中。谢谢。)id:$(this).attr('id')我需要更改吗?@dave id将被发布到likeProcessor.php。它可以是您需要的任何东西,但是
$(this).attr('id)
将返回被单击的“like”按钮的id属性值。因此,在我的例子中,“postid”和我将post id添加到click函数(postid)中就像这样。我并不真的使用Ajax,所以说实话,它超出了人们的理解力。通过阅读和提出直截了当的问题来掌握它,同时尝试自学。除非你刷新页面,否则它不会显示类似的计数。我只希望单击后显示。
 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.")";
                }
        }
<script language="javascript">
    $(".likeButton").click(function() {
        $.post("likeProcessor.php", {
            id: $(this).attr('id')
        }, function(data) {
            $("#likeIndicator" + $(this).attr('id')).html(data);
        });
</script>