2

我有一个数据库,里面有大约 5000 本书。当用户进入页面时,我不想使用 simple 加载书籍select * from BOOkTABLE,我的方法是按照用户的需要进行,所以我希望当用户向下滚动时,我可以从数据库中获取数据。可能是 15-20 本书的大块,这是一个好方法吗?有什么选择吗?

其次,我在 div 顶部有字母,因此如果用户点击"Z"我们可以获取以开头的书籍Z并在 DIV 中显示他。

4

2 回答 2

0

是的,您可以通过使用Ajax向下滚动来做到这一点。类似的东西:

$(window).scroll(function () {


    if ($(window).height() + $(window).scrollTop() == $(document).height()) {


        $.ajax({
            type: "POST",
            url: 'abc.php',
            async:false,
            data:"pagedata="+pageData ,
            cache: false,
            success: function(data){

            }
        });



    }

});

abc.php您可以根据您的要求设置查询,并在向下滚动时呈现要显示的 html(response) 。

于 2013-09-03T21:26:01.950 回答
0

对于第一个问题,使用 ScrollTop() 可以在滚动像素间隔后从 PHP 加载数据迭代。

您将需要一个 PHP 文件和 JavaScript。

这是徒手写的,没有经过测试,所以我不能保证这些会起作用,但请尝试以下方式:

JavaScript

jQuery(document).ready(function($){

// Set the number of pixels from the top you want the event to fire
// Select the number of books you would like to load each time
// i = number of loads you've called
var reloadAfter = 500;
var numberBooks = 20;
var i = 1;

$(window).scroll(function() {
    if ( $(this).scrollTop() >= reloadAfter )
    {
       $.get("getbooks.php", {number:numberBooks , counter:i} )
             .done(function(data){
                   $('#books').append("Title:", data.title)
                              .append("Author:", data.author);
                   });


        reloadAfter = reloadAfter + reloadAfter; 
        i++;
    }
});

PHP

$numberBooks = $_GET['number'];
$i = $_GET['counter'];
$upper = ( $numberBooks * $i );
$lower = ( $upper - $numberBooks );

$get_books = mysql_query('SELECT * FROM BOOkTABLE WHERE id > $lower AND id < $upper');

echo json_encode($get_books);
于 2013-09-04T00:10:29.917 回答