用户向下滚动时加载项目

时间:2013-09-03 21:06:26

标签: php javascript jquery html css

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

其次我在div上面有字母表,所以如果用户点击"Z",我们就可以获取以Z开头的图书并在DIV中显示。

2 个答案:

答案 0 :(得分: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(响应)。

答案 1 :(得分: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);