首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP Ajax类系统

PHP Ajax类系统
EN

Stack Overflow用户
提问于 2015-02-10 08:34:15
回答 1查看 633关注 0票数 0

我正在为我的网站评论系统开发一个喜欢/不喜欢的系统。

我正在写这篇教程,http://www.webcodo.net/like-dislike-system-with-jquery-ajax-and-php-youtube-like-design/

除了我在每个页面上有多个喜欢/不喜欢按钮,因为有多个评论,人们可以喜欢/不喜欢。

我是ajax btw的新手。

这是javascript文件。

代码语言:javascript
运行
复制
$('.like-btn').click(function(){
    $('.dislike-btn').removeClass('dislike-h');    
    $(this).addClass('like-h');
    $.ajax({
        type:"POST",
        url:"../outfits/outfit.php",
        data:'act=like&function=true&pageID=' + pageID + '&user=' + email,
        success: function(){
        }
    });
});

$('.dislike-btn').click(function(){
    $('.like-btn').removeClass('like-h');
    $(this).addClass('dislike-h');
    $.ajax({
        type:"POST",
        url:"../outfits/outfit.php",
        data:'act=dislike&function=true&pageID=' + pageID + '&user=' + email,
        success: function(){
        }
    });
});

这是“注释行”

代码语言:javascript
运行
复制
<div class="row">
                    <h5>Comments</h5>
                    <div class="row">
                        <div class="small-12 columns">
                            <textarea rows="4" class="post-comment" placeholder="You can comment or rate without doing the other" name="comment" maxlength="140"></textarea>
                        </div>
                    </div>
                    <div class="row">
                        <div class="small-10 large-10 columns">
                            <div class="rating">
<input type="radio" id="star5" name="rating" value="5" /><label for="star5">5 stars</label>
<input type="radio" id="star4" name="rating" value="4" /><label for="star4">4 stars</label>
<input type="radio" id="star3" name="rating" value="3" /><label for="star3">3 stars</label>
<input type="radio" id="star2" name="rating" value="2" /><label for="star2">2 stars</label>
<input type="radio" id="star1" name="rating" value="1" /><label for="star1">1 star</label>
                            </div>
                        </div>
                        <div class="small-2 large-2 columns">
                            <input type="submit" name="postComment" class="small button radius login-button right" value="Post">
                        </div>
                    </div>
                    <div class="row">
                        <div class="small-12 columns">
                            <hr />
                        </div>
                    </div>
                    <?php
                        foreach ($commentRows as $commentRow) {
                                try {
                                $pageID = $commentRow['id']; // The ID of the page, the article or the video ...

                                    extract($_POST);

                                    $dislike_sql = 'SELECT * FROM  likes WHERE user = "'.$email.'" and comment_id = "'.$pageID.'" and rate = 2 ';
                                    $stmt = $dbhandle->prepare($dislike_sql);
                                    $stmt->execute();

                                    $dislike_count = $stmt->rowCount();


                                    $like_sql = 'SELECT * FROM  likes WHERE user = "'.$email.'" and comment_id = "'.$pageID.'" and rate = 1 ';

                                    $stmt = $dbhandle->prepare($like_sql);
                                    $stmt->execute();

                                    $like_count = $stmt->rowCount();


                                    if($act == 'like'): //if the user click on "like"
                                    if(($like_count == 0) && ($dislike_count == 0)){

                                        $rate = 1;
                                        $sql = 'INSERT INTO likes (comment_id, user, rate )VALUES(:pageID, :email, :rate)';

                                        //prepare data for insert
                                        $stmt = $dbhandle->prepare($sql);

                                        $stmt->bindValue(":pageID", $pageID);
                                        $stmt->bindValue(":email", $email);
                                        $stmt->bindValue(":rate", $rate);

                                        //Execute
                                        $stmt->execute();
                                    }
                                    if($dislike_count == 1){

                                        $rate = 1;

                                        $sql = 'UPDATE likes SET rate = ? WHERE comment_id = ? and user = ?';

                                        $stmt = $dbhandle->prepare($sql);
                                        $stmt->execute(array($rate, $pageID, $email));
                                    }
                                    endif;

                                    if($act == 'dislike'): //if the user click on "like"
                                    if(($like_count == 0) && ($dislike_count == 0)){

                                        $rate = 2;
                                        $sql = 'INSERT INTO likes (comment_id, user, rate )VALUES("'.$pageID.'", "'.$email.'", "2")';

                                        //prepare data for insert
                                        $stmt = $dbhandle->prepare($sql);

                                        $stmt->bindValue(":pageID", $pageID);
                                        $stmt->bindValue(":email", $email);
                                        $stmt->bindValue(":rate", $rate);

                                        //Execute
                                        $stmt->execute();
                                    }
                                    if($like_count == 1){

                                        $rate = 2;
                                        $sql = 'UPDATE likes SET rate = ? WHERE comment_id = ? and user = ?';

                                        $stmt = $dbhandle->prepare($sql);
                                        $stmt->execute(array($rate, $pageID, $email));
                                    }
                                    endif;
                                }
                                catch (PDOException $e) {
                                    echo $e->getMessage();   
                                }
                                print '<div class="row comment-row" id="gohere">
                                <div class="small-12 columns">
                                    <div class="small-12 columns">
                                        <div class="row">
                                            <div class="small-12 large-2 columns text-center">
                                                <div class="row">
                                                    <div class="small-12 columns">
                                                        <span>' . $commentRow['first-name'] . '</span>
                                                    </div>
                                                </div>
                                                <div class="row">
                                                    <div class="small-12 columns">
                                                        <img src="https://a3-images.myspacecdn.com/images03/1/240e42b5d9ce48a78983961e7fcb3c39/300x300.jpg" class="profile-pic-comment" />
                                                    </div>
                                                </div>
                                            </div>
                                            <div class="small-12 large-10 columns comments">
                                                <div class="small-12 columns comment-text">
                                                    <span>' . $commentRow['text'] . '</span>
                                                </div>
                                            </div>
                                            <div class="row">
                                                <div class="small-12 large-4 columns right">
                                                    <div class="small-6 columns">
                                                        <div class="like-btn' . $commentRow['id'] . ' ';
                                                        if($like_count == 1){
                                                            echo 'like-h';
                                                        }

                                                        print '">Like</div>
                                                    </div>
                                                    <div class="small-6 columns">
                                                        <div class="dislike-btn' . $commentRow['id'] . ' ';

                                                        if($dislike_count == 1){
                                                            echo 'dislike-h';
                                                        }
                                                        print '"></div>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>';
                            }
                    ?>
                </div>

现在,我可以看到喜欢/不喜欢的计数,因为插入和更新查询不起作用,所以这些计数都是零。我手动输入了数据,以查看计数是否有效。

任何帮助都将不胜感激。如果我需要发布更多详细信息/代码,请让我知道。

EN

回答 1

Stack Overflow用户

发布于 2015-02-10 10:05:11

您编写try for count(),而不是使用rowCount()函数。

代码语言:javascript
运行
复制
$CountLikes = count($smpt);

我不认为这是问题所在。不管怎样,既然您说您是AJAX的新手,那么您是否尝试过在不使用AJAX的情况下使用类似的系统。不是说问题出在AJAX上,但它会排除您的问题是不是服务器端的问题,或者是AJAX的问题。排除问题所在将会对你有很大帮助。

如果它在没有AJAX的情况下成功工作,那么我们可以假设AJAX没有正确地将数据发送到服务器。你可以从那里开始工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28422112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档