我想知道如何使用用户输入作为搜索参数来实现分页。我理解没有用户输入的分页的基础知识,并没有这样做的麻烦,这是当用户输入时,它使我困惑。我不知道如何使页码链接根据搜索到的内容使用正确的查询。使用搜索参数创建分页链接
例如基本思想:
HTML
<input type="text" name="id" placeholder="ID">
<input type="text" name="name" placeholder="Name">
<button id="btn_search">Search</button>
<div id="search_results"></div>
JS
$("#btn_search").on('click', function() {
$.ajax({
url: 'process.php',
type: 'POST',
data: {id: $("input[name=id]").val(), name: $("input[name=name]").val()},
success: function(result) {
$("#search_results").html(result);
}
});
});
PHP
// Grab submitted search parameters and store in variable
if (isset($_POST["id"]) && !empty($_POST["id"])) {
$id = $_POST["id"];
} else {
$id = null;
}
if (isset($_POST["name"]) && !empty($_POST["name"])) {
$name = $_POST["name"];
} else {
$name = null;
}
$count_query = "SELECT COUNT(*) FROM users";
// Code here to get total row count for pagination
$query = "SELECT * FROM users WHERE id = ? AND name = ?";
$stmt = $connection->prepare($query);
$stmt->bind_param('is', $id, $name);
$stmt->execute();
// Dump as table
我想正确的做法是这样的:
<ul class="pagination">
<li><a href="paginate.php?id=<?php echo $id; ?>&name=<?php echo $name; ?>"></a></li>
<li><a href="paginate.php?id=<?php echo $id; ?>&name=<?php echo $name; ?>"></a></li>
</ul>
然后包括页码一个参数通过一个for循环。
用一些客户端输入验证是否安全?我有一个有效的方法吗?
编辑
函数naveed的回答是有帮助的,所以我会标记为回答。本文:https://jadendreamer.wordpress.com/2012/11/20/php-tutorial-searching-and-pagination/帮助我了解了如何做到这一点。它很古老,但很好地解释了一切。我结束了使用标签传回查询参数。
使用jQuery数据表,如果它适合您的问题,它会自动为您做所有事情! –
虽然我绝对可以做到这一点......我很想学习如何自己手动编写代码! –