1

嗨亲爱的朋友们,我希望你们一切都好。
我想制作一个下一步按钮来从 mysql 数据库中获取更多数据。
例如:

$sql = mysql_query("SELECT * FROM table LIMIT 0,7");  

它有 7 行。对于下一个数据代码就是这样。
$sql = mysql_query("SELECT * FROM table LIMIT 7,7");

我可以使用ajax 来做到这一点。正如您在许多网站(如 facebook)中看到的,当您单击评论时,它会给出有限的评论,当您单击更多评论时,它会给出更多等等。在这个过程中,您可以看到页面的其他内容没有改变。这意味着它可以使用 ajax 以及如何在 ajax 中做到这一点。请帮助我。谢谢。

4

2 回答 2

0

您必须通过 Ajax 发送当前评论计数,从响应中获取新评论并显示它们。

Javascript:

$(document).ready(function() {
    $('a.pagination-more').click(function() {
        var current_comments_count = $(this).data("current_comments_count");

        $.ajax({ 
            type: "POST",
            url: "pagination/pagination_ajax_more.php",
            data: { "limit_start":current_comments_count },
            beforeSend:  function() {
                $('a.pagination-more').html('<img class="loading-gif" src="pagination/loading.gif" />'); 
            },
            success: function(html){ 
                $("#more").remove(); // This is the "More" button. It is appended to the end again in the 'html' variable
                $("ul#updates").append(html);
                if($("a#end")[0]) {
                    $("div#more").remove();
                }
            }
        }); 

        return false;
    });
});

在 PHP 端,您只需获得 $limit_start,从数据库中获取结果并回显 html,如下所示:

$limit_start = $_POST['limit_start'];

$query = mysql_query("SELECT COUNT(*) FROM `table` LIMIT 0, $limit_start");
$current_comments_count = mysql_num_rows($query);

$query = mysql_query("SELECT * FROM `table` LIMIT $limit_start, 7");

while($row = mysql_fetch_assoc($query)) { 
    echo '<li>
            blah blah...
          </li>';
}

if(mysql_num_rows($query) == 7)  
    echo '<div id="more"><a data-current_comments_count="$current_comments_count" class="button pagination-more" href="#">More</a></div>';
else
    echo '<div id="more"><a id="end" class="button pagination-more" href="#">The button will be removed from jQuery...</a></div>';

当然,强烈建议保护您的应用程序而不是仅使用mysql_query(). 这段代码可以工作,但我删除了一些其他的东西,现在没有测试它。因此,可能会出现一些错误。

于 2012-10-17T14:24:45.293 回答
0

你的ajax会是这样的

var numberOfdata = 0;

$('#button').click(function () {
    $.ajax({
        url: 'load.php',
        data: {
            'limit' : numberOfdata,
            // other data ...
        },
        type : 'post',
        // other parameters...
    }).success(function (data) {
        // adding data to your website
        numberOfdata += 7;
    });    
});

在你的服务器端,你可以做这样的事情

... other operations
mysql_query("SELECT * FROM table LIMIT " . $_POST['limit'] . ",7"); 
... continuting the work

注意:您应该能够自己处理 SQL 注入。

编辑:请注意不推荐使用 mysql_query 。

于 2012-10-17T14:14:21.393 回答