AJAX PHP显示更多按钮

时间:2015-10-11 11:25:01

标签: javascript php jquery mysql ajax

我一直在网上和StackExchange上寻找这个答案,但似乎无法理解它。

我想在我的网站上有一个按钮,点击后会加载更多评论。目前我将评论限制在每页10个。

当有超过10条评论时,我设法让按钮显示,但我仍然坚持如何使用此按钮实际上让它加载更多评论。

有人可以帮我这个吗?

这是我的代码:

  

评论页面

    <?php
    require('../../private_html/db_connection/connection.php');
    $id= $_GET['id'];
    $start = 0;
    try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
        $sql = "SELECT reviews.*, user_accounts.display_name, user_accounts.profile_picture FROM reviews, user_accounts WHERE reviews.company_id=$id && user_accounts.account_number = reviews.account_number ORDER BY time_stamp DESC LIMIT $start,10";
        $reviews = $conn->query($sql);
        foreach ($reviews as $row) {
            print "//--DISPLAY FORMAT GOES HERE --/";
        }
        $dbh = null;
    }
    catch (PDOexception $e) {
        echo "Error is: " . $e-> etmessage();
    }
    ?><?php
     $offset=$start+10;
if($reviews->rowCount() > $offset){
echo "<button id='loadmore' name='loadmore'>Load More Reviews</button>";
}
?>  

2 个答案:

答案 0 :(得分:0)

这样的事情应该可以胜任:

    <script>
    //this uses jQuery
    $("#loadmore").click(function(e) {
       $("#commentsdiv").append("<div></div>").load("get_more_comments.php?start=10&limit=10");
    });
    </script>

它的作用是:当你点击“loadmore”按钮时,它会调用get_more_comments.php并将结果追加到“commentsdiv”div。 您只需跟踪到目前为止已加载的注释,并在获取数据时将其传递给JavaScript函数(请参阅查询中的星号,限制变量)。

答案 1 :(得分:0)

在评论页面的底部

<script>
$('.loadmore').onclick=function() {
    $.get("reviews.php?qty=10", function (data, status) {
        if (status == "success") {
            $(document.body).append(data);
        }
    }
}
</script>

<强> reviews.php

<?php
    require('../../private_html/db_connection/connection.php');
    $id= $_GET['id'];
    $start = 0;
    try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
        $sql = "SELECT reviews.*, user_accounts.display_name, user_accounts.profile_picture FROM reviews, user_accounts WHERE reviews.company_id=$id && user_accounts.account_number = reviews.account_number ORDER BY time_stamp DESC LIMIT $start,10";
        $reviews = $conn->query($sql);
        foreach ($reviews as $row) {
            print "//--DISPLAY FORMAT GOES HERE --/";
        }
        $dbh = null;
    }
    catch (PDOexception $e) {
        echo "Error is: " . $e-> etmessage();
    }

我在查询字符串中包含了qty但是没有在php脚本中实现它,你可以很容易地将它包含在php中以允许在你的查询中进行偏移和限制。