【发布时间】:2017-03-20 01:23:07
【问题描述】:
在此页面中,我有一个带有分页的表格。在分页部分,“first”类显示第一页记录,“last”类显示最后一页,“next”类显示下一个后续数据。这些所有功能都正常工作。但我的问题是当我单击“最后一个”类的“”时,它显示最后一页记录。之后,当我单击“上一个”类的“td”时,它必须在最后一个之前显示这些记录。
例如如果有 17 页,如果我点击最后一页,那么它会显示第 17 页,但是当我点击“上一页”时,它必须显示 16 而不是其他。
所以我尝试的是在 ajax 成功后更新页码,但该值在页面中并没有全局更改。
谁能帮我解决这个问题。谢谢。
以下是我的代码。
<div class="container">
<div class="row">
<table id="display_result">
</table>
<table id="pagination">
<tr>
<td><div class="first">|<</div></td>
<td><div class="previous"><</div></td>
<td><div class="next">></div></td>
<td><div class="last">>|</div></td>
</tr>
</table>
</div>
</div>
$(function(){
var page;
function displayData(ip, page, isLast){
var input = ip;
var datas = {
'input': input,
'page':page,
'isLast':isLast
}
$.ajax({
url: "getData.php",
type: 'post',
dataType: 'json',
success: function (data) {
var response = data.result;
page = data.page;
$("#display_result").html('');
$.each(response, function(i, item) {
$('<tr>').html(
"<td>" + response[i].line + "</td></tr>").appendTo('#display_result');
});
},
async:false,
data: datas
});
}
$("#pagination").delegate('td div', 'click', function(e) {
e.preventDefault();
var filename = $('#myInput').val().split('\\');
if ($(this).hasClass("first")){
page = 0;
displayData(filename[2], page, false);
}
if ($(this).hasClass("previous")){
page = page - 1;
displayData(filename[2], page, false);
}
if ($(this).hasClass("next")){
page = page + 1;
displayData(filename[2], page, false);
}
if ($(this).hasClass("last")){
displayData(filename[2], page, true);
}
});
})
【问题讨论】:
-
那么点击上一个会得到什么?
-
@AmrAly 当我在这里控制台 $("#pagination").delegate('td div', 'click', function(e) { e.preventDefault(); console.log("start ", page); 我得到'-1',根据我的例子,我认为应该是'17'
-
试试
displayData(filename[2], page, true);而不是displayData(filename[2], page, false);,告诉我你得到了什么。 -
当传递为真时,我得到值'0'。这个真假我用来检查页面是否是最后一页
-
如果我从 ajax 成功获得委托单击功能内的更新页面,我的问题将解决
标签: javascript php jquery ajax