如何使用按钮显示更多帖子?

时间:2017-12-06 16:15:57

标签: php ajax

我正在尝试制作一个包含帖子的页面。然后,当我按下按钮时,它会显示更多帖子

$start = 0;
  $end = 5;
  $slice = array_slice($postid_array, $start, $end);
  if(isset($_POST['load_more']) && is_numeric($_POST['load_more'])) {
    $load_more = $_POST['load_more'];
    if($load_more > 0) {
      $start = ($load_more * 5) + 1;
    }
    $end = $start + 4;
    $slice = array_slice($postid_array, $start, $end);
  }

这就是我得到的,我用ajax用1:

来增加$ load_more
 var clicked = 0;
function countClicks(){
  clicked += 1;
  var nb_clicked = clicked;
  console.log(nb_clicked);
  $.ajax({
    url: "../home/posts.php",
    type: "POST",
    data: "load_more="+nb_clicked,
    success: function(responseText) {
      $(".posts").append(responseText)
    },
    error: function() {
      console.log("ajax error");
    }
  })
}

但不是再获得5个帖子。我得到10,当我再次点击它给我15。

我希望这是足够的信息。

谢谢!

1 个答案:

答案 0 :(得分:0)

1,你做两次大规模操作(array_slice)......做第一次检查,第二次拼接。

第二,是错误 - array_slice的第三个参数是LENGTH,而不是offset2,左右。

所以不要做

$end = $start + 4;

它只是5。

所以最好的代码。 (当然是你的造型)

$start = 0;
$LENGTH = 5;
if(isset($_POST['load_more']) && is_numeric($_POST['load_more'])) {
    $load_more = $_POST['load_more'];
    if($load_more > 0) {
       $start = $load_more * $LENGTH;
    }
}
$slice = array_slice($postid_array, $start, $LENGTH);

$start = 0; $LENGTH = 5; if(isset($_POST['load_more']) && is_numeric($_POST['load_more'])) { $load_more = $_POST['load_more']; if($load_more > 0) { $start = $load_more * $LENGTH; } } $slice = array_slice($postid_array, $start, $LENGTH);