我有一个拥有约5000本书的数据库。当用户进入页面时,我不想使用简单的select * from BOOkTABLE
加载书籍,我的方法是按用户需要的方式进行,所以我希望当用户向下滚动时我可以从中获取数据数据库。可能是15-20本书的大块,这是一个好方法吗?还有其他选择吗?
其次我在div上面有字母表,所以如果用户点击"Z"
,我们就可以获取以Z
开头的图书并在DIV中显示。
答案 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);