【问题标题】:Endless paging of array datas数组数据无休止的分页
【发布时间】:2017-07-22 11:36:27
【问题描述】:

我有一个包含 500 多个条目的大型数组。结构是这样的:

      Array
      (
      [result] => Array
      (
         [mounts] => Array
            (
                [0] => Array
                    (
                        [name] => Test0
                        [spellId] => 230401
                        [creatureId] => -73991
                        [itemId] => 142369
                    )

                [1] => Array
                    (
                        [name] => Test1                           
                        [spellId] => 61447
                        [creatureId] => 32213
                        [itemId] => 44234
                    )

                    .....

我用这样的 foreach 得到数组数据:

               foreach ($r['result']['mounts'] as $item) echo '
                    <li class="span3 clearfix" data-tag=', 
                    $item['qualityId'], '>
                    ', $item['name'], '.
                    </li>';
                    echo '

我想要一个无休止的分页。因此,当用户到达页面末尾并向下滚动时,它应该会加载下一个数据。

我知道有一些插件可以无限分页,但我没有让它们处理数组中的数据。您对简单的解决方案有什么建议吗?

【问题讨论】:

  • 简单的解决方案会很困难。
  • 但是:将该数组写入 js,显示前 100 个,点击后添加下一个 100,.. 如果需要,可以在没有 ajax 的情况下完成。

标签: javascript php jquery arrays ajax


【解决方案1】:

您需要设置分页并设置一个窗口滚动侦听器,以便在用户滚动到底部时请求下一页。例如,与其发送所有条目,不如只发送在设置了页面时会出现在该“页面”上的内容。然后,在您的 js 中,您可以设置一个窗口滚动侦听器,以在用户滚动时请求下一个“页面”。

我创建了一个jsfiddle 来展示事物的 JS 方面。我的addMoreElements 将被替换为但是你想设置你的分页ajax 请求,我将把这部分留给你。

这是小提琴中真正重要的部分:

var $window = $(window),
  $document = $(document);
$window.scroll(function() {
  if ($window.scrollTop() + $window.height() == $document.height()) {
    addMoreElements();
  }
});

【讨论】:

  • 谢谢。我了解它背后的系统。由于我不太适合 JS……我怎样才能在 javascript 代码中获取我的数组?
猜你喜欢
  • 2013-06-28
  • 1970-01-01
  • 2011-10-27
  • 2013-08-14
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
相关资源
最近更新 更多