我有一个数组$ users
$statement = $pdo->prepare("SELECT * FROM activity");
$statement->execute();
$users = $statement->fetchAll();
我就像这样显示
<?php
foreach ($users as $key => $row) {
$dist = 0.0;
$x1 = $lng;
$x2 = $row['alng'];
$y1 = $lat;
$y2 = $row['alat'];
$dist = acos(sin($x1=deg2rad($x1))*sin($x2=deg2rad($x2))+cos($x1)*cos($x2)*cos(deg2rad($y2) - deg2rad($y1)))*(6378.137);
$distn = FLOOR ( ROUND($dist,1) * 2 ) / 2 ; //calculate distn
$users[$key]['dist'] = $distn; //add dist to array foreach value
}
array_multisort(array_column($users, 'dist'), SORT_ASC, $users); / sort array with dist
foreach($users as $row) {
?>
<article class="mainusers" id="actvtar">
<div class="actvtinfo">
<a class="actvtsnm" href="actvt.php?id=<?php echo ($row['aid']);?>"><?php echo $row['title']; ?></a>
</div>
<a class="titlepic" href="actvt.php?id=<?php echo ($row['aid']);?>">
<img class="actvtpb" src="./activitys/<?php echo ($row['title']); ?>/activitypic.jpg" alt="Bild nicht gefunden" onerror="this.src='./img/no_title.png';"></img>
</a>
<div class="actvtfooter">
<p id="ua">Tags:</p>
<p class="tags" id="actvttags" name="interest"><?php echo $row['interest'];?></p>
<p id="actvtsdist"><?php echo $row['dist']; ?>km entfernt</p>
</div>
</article>
<?php }
?>
现在我希望foreach循环显示5次(5个项目),如果我滚动到底部,则会加载下5个。 就像Twitter,Instagram等... 我怎样才能做到这一点? 我很感激你,如果你不把它标记为重复,因为我现在搜索了几天,我找不到一件衣服! 感谢您的帮助,祝您度过愉快的一天:)
答案 0 :(得分:0)
以下是您问题的一般答案。
首先,我要做的是查询可能有25条记录的限制,并使你的循环遍历所有25条。
这里的目标是将每个5条记录包装在带有编号id的div中,因此在您的循环中放置一个计数器来执行此操作
即
if ($count % 5 == 0) {
echo ("</div><div id='mydiv_$myCounter'>");
}
看看我在那里做了什么,我关闭然后打开了一个新的div,所以你必须从一个开始的div开始,然后以一个结束的div结束。
接下来,您将要使用css display:none隐藏除第一个div之外的所有div。我让你弄明白。
最后,一旦你有了这个,你就需要写一些javascript。 javascript(jQuery很适合这种事情)需要查看scroll事件。像这样的东西:
$(document).ready(function() {
$(window).scroll(function() {
// do whatever you need here.
});
});
完成后,找出需要加载更多数据的滚动位置,并使用jQuery使现有div可见或使用ajax从后端加载更多数据。
对不起,我不能更具体,但这基本上就是这样做的。