about load more ajax

时间:2017-12-27 作者:JJang

我让load更加ajax化。它工作得很好。但如果没有下一页的列表,我希望“加载更多”按钮消失。你能帮帮我吗?

这是html。

<div class="race_posts">

<!-- the room for ajax result: post list -->

</div>

<div class="loadmore">load-more</div>
这是ajax调用js。单击“加载更多”按钮时。

$(\'.loadmore\').on(\'click\', function(){

    var data = {
        \'action\': \'rnm_load_more_ajax\',
        \'page\': page,
        \'date_filter\': date_filter,
        \'sports_name\': \'marathon-tax\',
        \'compare\': compare,
        \'area_pass\': area_input,
        \'feature_pass\': feature_input_arr,
        \'security\': rnmLoadmore.nonce
    };

    $.post(rnmLoadmore.ajaxurl, data, function(response){

        $(\'.race_posts\').append(response);
        page++;


    });
});
这是处理ajax调用的一部分。

$paged = $_POST[\'page\'];

$args = array(
    \'post_type\' => \'book\',
    \'posts_per_page\' => 3,
    \'paged\' => $paged,     
);

$query = new WP_Query($args);

while($query->have_posts() ) :
    $query->the_post(); ?> 
       <div class="ajax"> <?php the_title(); ?> </div>        

<?php endwhile; wp_reset_query(); ?>

    <?php wp_die();
这是我的ajax调用编码的一些部分。并且工作正常。但是当没有下一页或没有响应内容时,我希望“加载更多”按钮消失。你能给我一些帮助吗。非常感谢。

1 个回复
最合适的回答,由SO网友:Roniz Shakya 整理而成

我对ajax函数调用和ajax js调用做了一些简单的更改。我希望这有帮助

ajax函数调用:

$return = array();
$paged = $_POST[\'page\'];
ob_start();
$args = array(
    \'post_type\' => \'book\',
    \'posts_per_page\' => 3,
    \'paged\' => $paged,     
);
$query = new WP_Query($args);
 while($query->have_posts() ):
    $query->the_post(); ?>
    <div class="ajax"> <?php the_title(); ?> </div>
<?php 
 endwhile;
wp_reset_query();
$return[\'load_post\'] = ob_get_clean();
$return[\'max_page\'] = $query->max_num_pages;
wp_send_json( $return );
wp_die();
您的ajax调用js:

(\'.loadmore\').on(\'click\', function(){
  var data = {
    \'action\': \'rnm_load_more_ajax\',
    \'page\': page,
    \'date_filter\': date_filter,
    \'sports_name\': \'marathon-tax\',
    \'compare\': compare,
    \'area_pass\': area_input,
    \'feature_pass\': feature_input_arr,
    \'security\': rnmLoadmore.nonce
  };
  $.post(rnmLoadmore.ajaxurl, data, function(response){
    if( response.load_post != ""){
        $(\'.race_posts\').append(response);
        page++;
        if( page > response.max_page) {
            $(\'.loadmore\').hide();
        }
    }
  });
});

结束

相关推荐

使用AJAX和PHP检查新消息。服务器超载?

我写了一个脚本(可能不太完美,我是新手)每X分钟检查一次新消息(使用ArrowChat和Buddypress)。它工作得很好,但我担心它会使我的服务器过载吗?它是共享的。代码:PHP// Prepare database global $wpdb; $wpdb->prepare; // Check are there new messages $query = $wpdb->get_results( \'SELECT `id` FROM `arrowc