0

我正在尝试解决一些关于分页问题的逻辑。

我需要基于 SQL 查询 JSON 数组构建分页元素,这没什么大不了的,除了我处理分页的方式是只返回由 LIMIT 参数设置的“每页显示”元素。

为了尝试清除它,这里是我的代码的一瞥。

<form id="hidden">
<input type="hidden" name="limit" value="5" id="hshowpp" />
</form>
<form id="userform">
    <select id="ushowpp">
        <option value=5>5</option>
        <option value=10>10</option>
        <option value=15>15</option>
        <option value=20>20</option>
    </select>
 </form>

哪个,当改变时,会引发一个 jQuery

$('#show').change(function() {
    var ushow = $('#ushowpp').val();
    $('#hshowpp').val(ushow);
}

然后是 AJAX

var results = $('#hidden').serialize();
var url = '<php? echo JURI::base(); ?>index.php?option=com_mls&task=ListData&format=raw&' + results;
$.ajax({
    url: url,
    dataType: 'json'
});

因此,AJAX 返回index.php?.....limit=5用户选择的查询或任何内容。

现在,这就是它如何运作的支柱。我的逻辑问题是如何解决分页问题。发送到 AJAX 的 URL 包含一个 LIMIT 参数,当它遇到 mySQL 时,会出现类似SELECT * FROM my_table WHERE 1=1 AND ...... LIMIT 0,5LIMIT 的参数,其中 LIMIT 的参数是“当前页面”和“每页显示”值。该问题特别与我需要从不包括“每页显示”限制参数的结果中显示总页数的位置有关。

如果这有任何意义......想法?

4

1 回答 1

0

我的解决方案是将限制参数分解为单独的隐藏形式,因此.serlaize()每个形式都可以串联或单独使用,具体取决于我需要做什么。这是一个小提琴来说明我的方法。

于 2012-12-26T15:09:42.513 回答