我需要帮助..
我有一个用foreach循环打印的项目列表.. 当我点击“显示其他”按钮时,我需要一次打印25个项目,为此我使用了LimitIterator。
我还需要在不重新加载页面的情况下执行此操作,因为我使用了AJAX。 我的问题是我需要计算已打印的项目数量,以便按钮显示其他项目获取此信息,每次使用此按钮时,它会使用foreach循环打印接下来的25个项目(在前25个项目下)我包含在一个函数中。
我该怎么办?提前谢谢。
getForeach.php
public static function spawn_list($list_start = 0, $list_limit = 25, $n = 0) {
......
$items = new ArrayIterator($items);
echo '<ul class="my_list">';
foreach (new LimitIterator($items, $list_start, $list_limit) as $item){
$n++;
echo '<li>';
echo '<span class="views">'.$item->viewers.'Viewers</span>';
echo '<span class="name">'.$item->name->display_name.'</span>';
echo '</li>';
}
echo '</ul>';
}
if(isset($_POST['action']) && !empty($_POST['action'])) {
$action = $_POST['action'];
switch($action) {
case 'more_items' : spawn_list();break;
}
}
AJAX脚本
$('#more_button').click(function(){
$.ajax({
type : "POST",
url : '/getForeach.php',
data:{action: 'more_items'},
async : true,
cache : false,
success : function(output) {
$("#test").html(output);
},
error : function (output) {
alert("error");
}
});
return false;
});
MYPAGE
<div id="test"></div>
<a href="javascript:void(0);" id="more_button">SHOW OTHER</a>
EIDT:我出于性能原因需要这样做。欢迎任何建议。
答案 0 :(得分:0)
在隐藏的输入字段中存储已返回的项目数
<input type='hidden' name='item_count' value='' />
在ajax调用中获取此值并将其传递给脚本,您可以创建一些逻辑来返回所需内容,如果是数据库查询则考虑使用LIMIT
您还希望更改成功功能以使用.append()
使用.html()
只会替换已设置的HTML。