javascript - 分页:使用带有 getJSON 的 "Get More"按钮

标签 javascript jquery html json pagination

我对此完全陌生,所以如果我没有得到足够的信息,请原谅我。我正在使用 JSON 和 ListView 显示可能有数千条记录,但是我一次只需要显示 20 条记录,底部有一个“显示更多”按钮。我不明白我将如何更改我当前的 javascript 以允许这样做,希望有人能指出我正确的方向。我一直在尝试应用此代码以使其正常工作,但未成功:

http://jsfiddle.net/knuTW/2/

我当前用于显示 JSON 数据的 javascript:

function getEmployeeList() {
$.getJSON(serviceURL + 'getmeals.php?calfrom='+ var1 + '&calto=' + var2, function(data) {
    $('#employeeList li').remove();
    employees = data.items;
    $.each(employees, function(index, employee) {
        $('#employeeList').append('<li><a href="employeedetails.html?id=' + employee.id + '">' +
            '<img src="http://www.restaurants.com/assets/img/logos/' + employee.restaurant + '.jpg"/>' +    
                '<h4>' + employee.meal_item + '</h4>' +
                '<p>Calories: ' + employee.calories + '</p>' +
                '<span class="ui-li-count">' + employee.protein + '</span></a></li>');

    });
    $('#employeeList').listview('refresh');
});
}

HTML:

<div id="employeeListPage" data-role="page" >

<div data-role="header" data-position="fixed">
    <h1>Restaurant Meals</h1>
</div>

<div data-role="content">
     <ul id="employeeList" data-role="listview" data-filter="true"></ul>
     <ul class="load-more"><a href="#">Load More</a></ul>
</div>      

最佳答案

想法是向您的 $.getJSON 添加两个参数:limitoffset

Limit 是您想要的行数。假设有 20 行。

Offset 是您要开始搜索的行号。所以 0 然后 20 然后 40 等等

通过单击“获取更多”,您可以重复使用偏移量 +20 的 $.getJSON

在后端,您的 SQL 查询应如下所示:

$query = "SELECT * FROM table LIMIT $offset, $limit";

当查询没有返回时,表示用户到达终点。

然后您可以隐藏“获取更多”按钮。


另一种解决方案是让所有员工都使用一个 $.GetJSON,然后将结果存储在一个变量中。您首先显示前 20 名员工。如果用户点击“获取更多”,您将显示接下来的 20 名员工。当您的阵列中没有更多员工时,您将隐藏“获取更多”按钮。

使用此解决方案,您将避免向服务器发出多个请求。


你也可以寻找一个插件来制作你的分页。

一些例子:

关于javascript - 分页:使用带有 getJSON 的 "Get More"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12448640/

相关文章:

javascript - 自定义 JavaScript 滚动条 (jScrollPane) 存在变换比例错误

html - 如何拥有多行 CSS 水平滚动条?

html - 使用文本作为背景图像上的 mask

javascript - 添加 eventListener 以模糊自定义组件上的事件?

javascript - 观察数组的子值

Javascript递增列表列表

javascript - 通过 onclick 事件设置变量

javascript - 来自 $.post jquery 方法的图像不显示返回的图片,知道吗?

javascript - 用户查看弹出窗口更改变量值的次数

javascript - angularjs:打开页面然后仅加载数据