2016-02-27 87 views
0

当我在无限滚动范围之间时,如何显示某些内容?无限滚动显示范围之间的东西

举例:我想在无限滚动进给3个范围时显示我的广告。

1 TEXT1 
2 TEXT2 
3 TEXT3 

Ads //Added when it's feed by 3 range. 

4 TEXT4 
5 TEXT5 
6 TEXT6 

Ads //Added when it's feed by 3 range. 

...(Repeat until finish) 

scroll.php

<?php 
include('db.php'); 

if(isset($_REQUEST['actionfunction']) && $_REQUEST['actionfunction']!=''){ 
$actionfunction = $_REQUEST['actionfunction']; 

call_user_func($actionfunction,$_REQUEST,$con,$limit); 
} 
function showData($data,$con,$limit){ 
$page = $data['page']; 
if($page==1){ 
$start = 0; 
} 
else{ 
$start = ($page-1)*$limit; 
} 

$sql = "select * from infinitescroll order by id asc limit $start,$limit"; 
$str=''; 
$data = $con->query($sql); 
if($data!=null && $data->num_rows>0){ 
while($row = $data->fetch_array(MYSQLI_ASSOC)){ 
$str.="<div class='data-container'><p>".$row['id']."</p><p>".$row['firstname']."</p><p>".$row['lastname']."</p></div>"; 
} 
$str.="<input type='hidden' class='nextpage' value='".($page+1)."'><input type='hidden' class='isload' value='true'>"; 
}else{ 
$str .= "<input type='hidden' class='isload' value='false'><p>Finished</p>"; 
} 
echo $str; 
} 
?> 

scroll.js

var ajax_arry=[]; 
var ajax_index =0; 
var sctp = 100; 
$(function(){ 
$('#loading').show(); 
$.ajax({ 
url:"scroll.php", 
type:"POST", 
data:"actionfunction=showData&page=1", 
cache: false, 
success: function(response){ 
$('#loading').hide(); 
$('#demoajax').html(response); 

} 

}); 
$(window).scroll(function(){ 

var height = $('#demoajax').height(); 
var scroll_top = $(this).scrollTop(); 
if(ajax_arry.length>0){ 
$('#loading').hide(); 
for(var i=0;i<ajax_arry.length;i++){ 
ajax_arry[i].abort(); 
} 
} 
var page = $('#demoajax').find('.nextpage').val(); 
var isload = $('#demoajax').find('.isload').val(); 

if ((($(window).scrollTop()+document.body.clientHeight)==$(window).height()) && isload=='true'){ 
$('#loading').show(); 
var ajaxreq = $.ajax({ 
url:"scroll.php", 
type:"POST", 
data:"actionfunction=showData&page="+page, 
cache: false, 
success: function(response){ 
$('#demoajax').find('.nextpage').remove(); 
$('#demoajax').find('.isload').remove(); 
$('#loading').hide(); 

$('#demoajax').append(response); 

} 

}); 
ajax_arry[ajax_index++]= ajaxreq; 

} 
return false; 

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

}); 

这里的例子从原址居住Demo

+0

除了索引以及您的数据的跟踪'call_user_func($ actionfunction,$ _ REQUEST,$ CON,$限制)'凸现出非常惊人的。我建议尽快删除那个 – Isaac

+0

@Isaac为什么我应该删除它? –

+0

它调用URL中'actionfunction ='的任何函数。我试图弄清楚,如果我可以把我自己的代码放在那里,但现在尝试'actionfunction = var_dump' – Isaac

回答

1

尽量保持从激怒了我很多东西,取

$index = 0; 
while($row = $data->fetch_array(MYSQLI_ASSOC)){ 
//... your other code 
if($index++%3==2){ 
$str.="ad stuff"; 
} 

}