如何在PHP数组上加载更多?

时间:2011-09-26 02:26:19

标签: php javascript jquery

我使用jQuery(我在答案,测试和工作中发现此代码)来显示 people.php 并每100秒重新加载一次。 People.php 有一个数组peoples,其中有保存的姓名,工作,生日。

如您所见,输出停止在30个名称。我怎么能有一个类似Twitter的按钮“加载更多”并一次显示10个?另外,当有例如另外50个人的名字(假设用户点击了“加载更多”两次,jQuery超时会重新加载,在30开始时返回它们吗?

<script>
var timerID;

$(function () {
    function loadfeed() {
        $('#feed')
            .addClass('loading')
            .load('people.php', function () {
                $(this).removeClass('loading');
                timerID = setTimeout(loadfeed, 100000);
        });
    }

    loadfeed();
});
</script>

2 个答案:

答案 0 :(得分:1)

如何将参数传递到load(..)来电中的网址?

$(function () {
    var startAt = 0;
    function loadfeed() {
        $('#feed')
            .addClass('loading')
            .load('people.php?start_at=' + startAt, function () {
                $(this).removeClass('loading');
                timerID = setTimeout(loadfeed, 100000);
                startAt += 30;
            });
    }
});

然后在people.php中,您可以使用$_GET获取传递的参数:

$start_at = 0;
if (isset($_GET['start_at']) && is_numeric($_GET['start_at'])) {
    $start_at = (int) $_GET['start_at'];
}
for ($i = $start_at; $i < min($start_at + 30, sizeof($peoples)); $i++) {
    echo $peoples[$i]->name;
}

答案 1 :(得分:0)

你能做的就是保存一个包含人数的变量,这个例子可以让你很好地了解我的意思。

<script>
var timerID;
var cap;

$(function () {
    function loadfeed() {
        $('#feed')
            .addClass('loading')
            .load('people.php?cap='+cap, function () {
                $(this).removeClass('loading');
                timerID = setTimeout(loadfeed, 100000);
        });
    }

    loadfeed();
});
</script>

<?php
    foreach ($peoples as $people) {
    if(++$i > $_GET['cap']) break;

    echo $people->name;

    }
?>

所以你需要做的就是更改cap变量,你可以轻松地创建一个javascript函数并通过onClick事件调用它。