2017-12-06 15 views
0

投稿でページを作成しようとしています。ボタンを使用してさらに投稿を表示するにはどうすればよいですか?

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以上を取得:私はボタンを押したときに、それはこれは私が1と$のload_moreを高めるために、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); 
    } 

を示し投稿。私は10を得て、もう一度クリックすると私に15が与えられます。

これは十分な情報だと思います。

ありがとうございました!

+1

load_more.php' '上のコードでは、' javascript' – Eddie

+0

いただきました!これで? '$ load_more = $ _POST ['load_more']; $ load_more = 1; 'テスト用ですか?そして、最初は0でなく1でなければなりません。 – vaso123

+1

POST値を読んだ直後に '$ load_more'を1に設定するのはなぜですか?これで、POST値は無視されます。また、 '1'に設定した直後に値が'> 0'であるかどうかをチェックしています。 1つは*常に*ゼロより大きい。また、 'load_more.php'では、JavaScriptコードをPHPコードのように使用しようとしています。これはさまざまな構文エラーを引き起こし、そのスクリプトはまったく動作しません。あなたはここに奇妙な問題のバラエティ*を持っています。あなたは一歩踏み込んで最初からやり直したいと思うかもしれません。 – David

答えて

0

第1回目のチェック、第2回目のスプライスは、第1回、大量の操作を2回(array_slice)行います。

第2は間違っています - array_sliceの3番目のパラメータはLENGTHであり、offset2ではありません。

のでそれだけで5だ

$end = $start + 4; 

をしません。

最高のコードです。 (あなたのスタイリングでもちろん)

$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); 

関連する問題