Php 使用jQuery和AJAX显示来自数据库的更多结果

Php 使用jQuery和AJAX显示来自数据库的更多结果,php,jquery,ajax,get,Php,Jquery,Ajax,Get,我正在尝试在模板中使用AJAX创建新闻块。因此,我在HTML部分编写了一个简单的代码: <a href="javascript:ShowPost();">Show Posts</a> <div id="result"></div> PHP部分: if ($_POST['action'] == "showpost") { $db->query( "SELECT title FROM post LIMIT 0,5 " ); whi

我正在尝试在模板中使用AJAX创建新闻块。因此,我在HTML部分编写了一个简单的代码:

<a href="javascript:ShowPost();">Show Posts</a>
<div id="result"></div>
PHP部分:

if ($_POST['action'] == "showpost") {    
 $db->query( "SELECT title FROM post LIMIT 0,5 " );
  while ( $row = $db->get_row() ) {
   echo $row['title']."<br>";
  }    
}
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>";   }     
}
问题是,我如何在第一次单击后获得更多结果?例如,在第一次单击ShowPosts链接后,我可以显示数据库中的5条新闻。在第二次点击ShowPosts链接后,我需要显示6到10条新闻,在第三次点击获取11到15条的结果并继续


我希望您能理解我的问题。

根据您的实现,您需要跟踪显示的项目数量,并将页码传入。例如:

jQuery部分:

function ShowPost(){
  $.post(dir + 'engine/ajax/posts.php', {action:"showpost"},
    function(data) {
      $("#result").html(data);
});
};
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") {    
 $db->query( "SELECT title FROM post LIMIT 0,5 " );
  while ( $row = $db->get_row() ) {
   echo $row['title']."<br>";
  }    
}
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>";   }     
}

在html中获取一个隐藏字段,并在每次成功调用后更新其值,下次调用下一条记录时在post中发送该值

<input type="hidden" name="limit" value="5">
<a href="javascript:ShowPost();">Show Posts</a>
<div id="result"></div>

只需在您的查询中实现分页限制

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>";
  }    
}