我使用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>
答案 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事件调用它。