我正在尝试在我的模板中使用AJAX创建新闻块。所以我在HTML Part:
中编写了一个简单的代码<a href="javascript:ShowPost();">Show Posts</a>
<div id="result"></div>
jQuery Part:
function ShowPost(){
$.post(dir + 'engine/ajax/posts.php', {action:"showpost"},
function(data) {
$("#result").html(data);
});
};
PHP部分:
if ($_POST['action'] == "showpost") {
$db->query( "SELECT title FROM post LIMIT 0,5 " );
while ( $row = $db->get_row() ) {
echo $row['title']."<br>";
}
}
问题是,如何在第一次点击后获得更多结果?例如,在第一次点击显示帖子链接后,我可以显示来自数据库的5条新闻。在第二次点击Show Posts链接后,我需要显示6到10个新闻,在第三个中点击从11到15获取结果并继续......
我希望你理解我的问题。
答案 0 :(得分:1)
根据您的实施情况,您需要跟踪已显示的项目数并传递页码。例如:
jQuery Part:
var pageNumber = 0;
function ShowPost() {
pageNumber++;
$.post(dir+ 'engine/ajax/posts.php', {action:"showpost", pageNum: pageNumber},
function(data) {
$("#result").html(data);
});
};
免责声明:我不是PHP开发人员,所以请将下面的代码视为伪代码。
PHP部分:
if ($_POST['action'] == "showpost") {
var pageSize = 5;
var pageNumber = $_POST['pageNumber'];
var from = (pageNumber - 1) * pageSize;
var to = pageNumber * pageSize;
$db->query( "SELECT title FROM post LIMIT " + from + "," + pageSize);
while ( $row = $db->get_row()) { echo $row['title']."<br>"; }
}
答案 1 :(得分:1)
只需在您的查询中实施分页限制
var offset = -5;
function ShowPost(){
offset = offset + 5;
$.post(dir + 'engine/ajax/posts.php', {action:"showpost",offset:offset},
function(data) {
$("#result").html(data);
});
};
PHP part
if ($_POST['action'] == "showpost") {
$vOffset = $_POST['offset'];
$db->query( "SELECT title FROM post LIMIT $vOffset,5 " );
while ( $row = $db->get_row() ) {
echo $row['title']."<br>";
}
}
答案 2 :(得分:0)
在html中使用隐藏字段并在每次成功调用后更新它的值,并在下次调用下一条记录时在post中发送该值。
<input type="hidden" name="limit" value="5">
<a href="javascript:ShowPost();">Show Posts</a>
<div id="result"></div>