Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 打印foreach块并使用“更多”按钮显示它们_Php_Jquery_Html_Ajax - Fatal编程技术网

Php 打印foreach块并使用“更多”按钮显示它们

Php 打印foreach块并使用“更多”按钮显示它们,php,jquery,html,ajax,Php,Jquery,Html,Ajax,我需要帮助 我有一个用foreach循环打印的项目列表。。 当我点击“show other”按钮时,我需要一次打印25个项目,为此我使用了LimitIterator 我还需要在不重新加载页面的情况下完成它,为此我使用了AJAX。 我的问题是,我需要计算已经打印了多少项,以便按钮显示其他获取此信息的按钮,并且每次使用此按钮时,它将使用我包含在函数中的foreach循环打印下25项(在前25项下) 我该怎么办?提前谢谢 getForeach.php public static function sp

我需要帮助

我有一个用foreach循环打印的项目列表。。 当我点击“show other”按钮时,我需要一次打印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;
    }
}
Mypage

 <div id="test"></div>
        <a href="javascript:void(0);" id="more_button">SHOW OTHER</a>


EIDT:出于性能原因,我需要这样做。因此欢迎提供任何建议。

将返回的项目数存储在隐藏的输入字段中

<input type='hidden' name='item_count' value='' />

在Ajax调用中获取该值并将其传递给脚本,如果数据库查询考虑使用<代码>限制< /代码>

,则可以创建一些逻辑来返回所需的信息。
您还需要将success函数更改为使用
。append()
使用
。html()
将只替换已设置的html。

只需将开始值传递给AJAX调用,并在每次加载新行项时在JavaScript中递增它……谢谢,但我可以将此隐藏输入放在哪里?如果我在foreach函数中插入它来获取变量$n的值,这将不起作用。As将打印许多不同的隐藏输入,ajax将只引用其中的第一个。然后,可以在ajax调用中使用
$('input[name=item_count]').val()引用输入字段可以通过这种方式设置和检索值。如果你仍然不确定,我可以写一个小例子。
<input type='hidden' name='item_count' value='' />