为阵列加载更多按钮

时间:2017-03-02 20:29:19

标签: javascript php jquery arrays ajax

我有一个数组$ 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等... 我怎样才能做到这一点? 我很感激你,如果你不把它标记为重复,因为我现在搜索了几天,我找不到一件衣服! 感谢您的帮助,祝您度过愉快的一天:)

1 个答案:

答案 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从后端加载更多数据。

对不起,我不能更具体,但这基本上就是这样做的。