【问题标题】:jquery pagination breaks when i add "next" function当我添加“下一个”功能时,jquery 分页中断
【发布时间】:2013-08-04 21:26:15
【问题描述】:

所以我正在尝试我的第一个 jquery 代码,但我被卡住了。

基本上,我正在制作一个简单的分页脚本,我已将要显示的行数设置为 3,当我查看结果页面时,它会显示搜索返回的 21 行中的 3 行。

现在,当我将下一个函数添加到脚本以从一页移动到另一页并运行搜索时,结果不再显示 3 行,而是显示所有行。谁能告诉我我做错了什么?

这是我的代码:

    <html>
<head>
<script src="jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {

//Declaring Variables
var page = 1;
var per_page = 3;
var items = $('.row').length;
var page_last = Math.ceil(items/per_page);
}
//Set Page
function setPage(page) {
$('.row').slice(0, page * per_page).hide();
$('.row').slice(page * per_page - per_page, page * per_page).show();
$('.row').slice(page * per_page).hide();
$('#page_display').html('page ' + page);

}
//Next Button
$('.next').click(function() {
if (page < page_last) {
page++;
setPage(page);
}
});
//Previous Button
$('.prev').click(function() {
if (page > 1) {
page--;
setPage(page);
}
});

setPage(1);
});
</script>
</head>
<body>


<?php

$host = 'localhost';
$username = 'root';
$password = '';

try {
$dbh = new PDO("mysql:host=localhost;dbname=elitenv", $username,
$password);
} catch (PDOException $e) {
echo $e->getMessage();
}

$query = "SELECT * FROM `players` WHERE `id` > :val";
$stmt = $dbh->prepare($query);
$stmt ->bindValue(':val', $_POST['search']);
$row = $stmt->execute();

echo "<table border='1'>";
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo"<tr class='row'><td>";
echo $row['id'];
echo "</td></tr>";
}
echo "</table>";


?>
<div id="page_display"><br/>
<button type="button" class="prev">Previous</button>
<button type="button" class="next">Next</button>
</div>
</body>
</html>

如果我删除下一个按钮和上一个按钮功能,它将再次显示 3 行 21。

【问题讨论】:

  • 你能创建一个示例小提琴
  • @3dgoo 不是这样,它在我电脑上的代码中,一定是在复制和粘贴时遗漏了。
  • @Sushanth-- 我不知道如何用连接到 mysql 的代码来制作 jsfiddle 以获得它的结果。
  • @user2447848 使用浏览器的 html 输出。

标签: php jquery


【解决方案1】:

删除变量page_last下面的关闭}

http://jsfiddle.net/hPM2H/

也不要覆盖 page_display div,你会丢失下一个和上一个按钮 :)

【讨论】:

  • 非常感谢,在过去的 3 个小时里,我一直在摸索着想弄清楚我做错了什么。
【解决方案2】:

这是想出的:

//Declaring Variables
var page = 1;
var per_page = 3;
var items = $('.row').length;
var page_last = Math.ceil(items / per_page);

$(document).ready(function () {
    setPage(1);
});

//Set Page
function setPage(page) {
    $('.row').slice(0, page * per_page).hide();
    $('.row').slice(page * per_page - per_page, page * per_page).show();
    $('.row').slice(page * per_page).hide();
    $('#page_display').html('page ' + page);
}


//Next Button
$('.next').click(function () {
    if (page < page_last) {
        page++;
        setPage(page);
    }
});

//Previous Button
$('.prev').click(function () {
    if (page > 1) {
        page--;
        setPage(page);
    }
});

你的括号放错地方了。

在此处查看 jsFiddle:
http://jsfiddle.net/bayoffire/PzxF3/4/

【讨论】:

  • 这仍然无法正常工作,与我遇到的问题相同。你有 7 行,它显示全部 7,但脚本说它只显示 3。如果我删除按钮功能,它将显示 3
  • 再看一遍。我忘了保存 jsfiddle。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-26
  • 2014-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多