我正在尝试制作一个包含帖子的页面。然后,当我按下按钮时,它会显示更多帖子
$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。
我希望这是足够的信息。
谢谢!
答案 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);