PHP - 显示更多文章功能反馈

时间:2014-12-16 23:10:53

标签: php mysql database forms performance

目前,我有一个文章页面,可以读取数据库表格中的所有文章,并在页面上打印每个文章,从最新版本开始。

然而,我制作的系统将长期使用(小公司的学生项目)并且会有很多文章。我不希望用户和服务器必须在网页上一次加载所有文章。我有想法如何做到这一点,但我想先由其他人来管理这个想法。

从概念上讲,我在考虑在页面上加载一些文章。在底部,会有一个"显示更多"从数据库中读取并显示更多文章的按钮或链接(希望无需重新加载页面,但我非常怀疑它是否可行)。

实际上,它可能会是这样的:使用表格,在隐藏字段中存储显示文章的数量,提交"显示更多"重新加载页面并使用$ _POST和while循环显示存储的数字+几篇文章。以下是一个简化示例。

<form method="post" action="articlePage.php">
   <?php
   if(isset($_POST["articleCount"])){
      $articleCount = $_POST["articleCount"] + 5;
   }
   else{
      $articleCount = 5
   }

   //Assuming we open the connect, execute the query and then close the connection
   $count = 0;
   while($result = mysqli_fetch_array($selectNews) && $count <= $articleCount){
      echo $result["articleName"] . "<br/>";
      count = count + 1;
   }

   echo "<input type='hidden' value='" . $articleCount . '" name='articleCount'/>";
   ?>
   <input type="submit" value="Show more"/>
</form>

我的问题是:

  • 有更有效/更好的方法吗?
  • 有没有办法让我不必重新加载页面?

非常感谢任何提示或信息!我在提问时有点新意,所以如果有任何遗漏,请告诉我

1 个答案:

答案 0 :(得分:3)

您可以将PHP代码放在单独的文件中,并使用AJAX调用它。你可以这样做:

function getArticleCount(){
   if(isset($_POST["articleCount"])){
      $articleCount = $_POST["articleCount"] + 5;
   }
   else{
      $articleCount = 5
   }

   //Assuming we open the connect, execute the query and then close the connection
   $count = 0;
   while($result = mysqli_fetch_array($selectNews) && $count <= $articleCount){
      echo $result["articleName"] . "<br/>";
      count = count + 1;
   }

   echo "<input type='hidden' value='" . $articleCount . '" name='articleCount'/>";
}

getArticleCount();

以下是一起使用AJAX and PHP来感受它的示例。