2013-08-02 32 views
1

我有一些UI元素,需要无限滚动。所以我使用jscroll。 当div处于末尾时,我想获取新数据。jscroll加载数据时末尾

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
</script> 
<script src=js/jquery.jscroll.js></script> 
<script> 

$('.scrollt').jscroll(function(){ 
    $(".scrollt").load("/handle.php?lastdis=90");}); 

</script> 
</head> 
<body> 


<?php 
include_once('conn.php'); 

$start=0; 
$query="Select * from data where id > ". $start ." Limit 90;"; 
$res=mysqli_query($con,$query); 

echo '<div class="scrollt">'; 
while ($row = mysqli_fetch_array($res, MYSQL_NUM)) { 
    echo "<p> ".$row[0]." &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;". $row[1]."<p><p><p>"; 
} 

echo "</div>" 

?> 

</body> 
</html> 

所以基本上我显示与90个记录的页面,并希望获取在负载91以上的记录()function.But这不起作用。

handle.php代码

<?php 
include_once('conn.php'); 
$goahead=$_GET['lastdis']; 

$query="Select * from data where id > ". $goahead ." Limit 20;"; 
$res=mysqli_query($con,$query); 
while ($row = mysqli_fetch_array($res, MYSQL_NUM)) { 
    echo "<p> ".$row[0]." &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;". $row[1]."<p><p><p>"; 
} 

我只需要两个小时的jQuery experience.Please熊。

回答

5

使用.scroll()事件上window,像这样:

$(window).scroll(function() { 
    if($(window).scrollTop() + $(window).height() == $(document).height()) { 
     alert("bottom!"); 
    } 
}); 

You can test it here,这需要在窗口顶部的滚动,所以它是多么的向下滚动,增加了可视窗口和检查的高度,如果是等于整个内容的高度(document)。如果你想,而不是检查用户是否附近下,它会是这个样子:

$(window).scroll(function() { 
    if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { 
     alert("near bottom!"); 
    } 
}); 

You can test that version here,只是调整的是100到要触发任何从底部像素。

现在,只需提示底层用户使用ajax即可获取要添加到底部的数据。

$.ajax({ 
     url: "handle.php", 
     type: "post", 
     data: values, 
     success: function(data){ 
      $("#result").append(data); 
     }, 
     error:function(){ 
      alert("failure"); 
      $("#result").append('Error Occurred while fetching data.'); 
     } 
    }); 
+0

花了一段时间接受答案。谢谢。 – Sankalp

+0

@Sankalp酷;) –