当使用分页隐藏给定行时,如何获取下一行?

时间:2012-01-09 03:34:33

标签: mysql ajax pagination hide toggle

我很难提出一个简短的问题,所以请耐心等待:

使用jQuery和AJAX,我将所有帖子存储在我的MySQL数据库中,显示在index.php上。每个帖子都有一个按钮,让用户隐藏帖子的DIV。

现在,我想做到这一点,我只看到10个结果并对其余部分进行分页。我知道有很多分页插件,但当用户隐藏10个已经显示的帖子中的一个时,它们都没有显示下一篇文章。

因此,如果我看到第1页的帖子1-10(第2页的帖子11-20)和用户隐藏帖子8,我应该看到帖子1,2,3,4,5,6,7,9,10 ,第1页11,第2页第12-21页,依此类推。

问题是:我该怎么做?这就是我现在所拥有的(从数据库中获取帖子,在页面上显示帖子+隐藏按钮切换):

// Javascript

$(document).ready(function() {
$(document).on("click", ".hide", function(){
    postID = $(this).attr('id').replace('hide_', '');

    $('#post-' + postID).toggle();

    return false;
});
});


// PHP

<?php
$pageposts = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->posts"), OBJECT);
?>
<?php if ($pageposts): ?>

<?php global $post; ?>

<?php foreach ($pageposts as $post): ?>
<?php setup_postdata($post); ?>
        <div id="buttons_<?php the_ID(); ?>">
            <div id="hide_<?php the_ID(); ?>" class="hide" style="position:absolute; right: 2.5em;">
                <a id="hidebtn_<?php the_ID(); ?>" href="#"><span></span></a>
            </div>
        </div>

        <div id="post-<?php the_ID(); ?>">
            /* display post content */
        </div>

<?php endforeach; ?>

<?php endif; ?>

1 个答案:

答案 0 :(得分:0)

找出下一个要抓取的ID的简单方法是在页面上存储MAX id,因此如果页面显示1-10,则将10存储为MAX id。 当用户隐藏帖子时,mysql查询将拉出1个结果,其中id&gt;存储的最大ID。