如何在jquery / ajax未排序列表中集成分页?

时间:2011-08-29 03:04:04

标签: php javascript jquery mysql pagination

这是我的问题。我尝试了很多东西,并意识到我现在可以在我的大脑上煮一个鸡蛋。我需要你的帮助。

我需要在发布内容的div上添加分页。更具体地说,对用户生成的列表进行分页。

这是我的index.php:

<div id="head">
<form name="postbar_add_post" id="postbar_add_post" method="post">
    <fieldset>
        <legend>What are you doing now? ...</legend>
        <input type="text" name="addcontentbox" id="addcontentbox" maxlength="200" />
        <input type="submit" name="addpost" value="Submit" class="submit" />
        </fieldset>
</form>
</div>

<div id="cuerpo"><ul id="wall"></ul></div> 

提交文本时,它使用以下JavaScript代码发布该div的数据:

// This is the script to post whats typed on the input to the div called wall:
<script type="text/javascript">
    $.noConflict();
    jQuery(document).ready(function() {
        jQuery("form#postbar_add_post").submit(function() {
            var addcontentbox = jQuery('#addcontentbox').attr('value');
            if (addcontentbox.replace(/\s/g,"") == "") {
                return false;
            }
            jQuery.ajax({
                type: "POST",
                url: "postear.php",
                data: "addcontentbox=" + addcontentbox,
                success: function() {
                    jQuery("ul#wall").prepend("<li>"+addcontentbox+"</li>");
                    jQuery("ul#wall li:first").fadeIn();
                    document.postbar_add_post.addcontentbox.value = '';
                    document.postbar_add_post.addcontentbox.focus();
                }
            });
            return false; 
        });
    });
</script>

我正在使用$.noConflict();,因为我已经尝试使用另一个名为Jpagination的jquery插件对其进行分页。 不幸的是,没有好结果。如果要查看,请单击here

以前的Ajax代码调用PHP文件将消息插入数据库。

这是php代码:

<?php
if(isset($_POST['addcontentbox'])) {
    // Connection to Database
    include('config.php');
    // NO Query Injection
    $message = mysql_real_escape_string($_POST['addcontentbox']);

    // echo
    $sql = 'INSERT INTO WALL (message) VALUES( "'.$message.'")';
    mysql_query($sql);
    echo $message;
}
else
{ 
    echo '0';
}
?> 

所以,我尝试将分页与PHP集成,但我真的迷路了。然后我在网上发现了一些分页的脚本,但这让我更糟糕。

所以我真的需要帮助。

有谁能告诉我如何在index.php上的未排序列表中添加分页?

1 个答案:

答案 0 :(得分:0)

嗯,我仍然不是100%清楚你希望它如何运作,但我有一个想法。假设您要在页面上显示10条消息。因此,当页面首次加载时,它将包含10条最新的注释。(您可以通过稍微更改SQL查询来执行此操作)您还希望index.php接受查询字符串中的页面变量,因此您知道要加载的页面。比如index.php?page=1。 然后,您可以编写初始查询以获取如下消息:(执行此操作后$page = $_GET['page'];

"SELECT * FROM wall ORDER BY id DESC LIMIT $page*10, 10"

除了获取最新消息之外,您还想知道总共有多少消息,因此您知道您有多少页面。您也可以通过SQL查询获得它。

"SELECT COUNT(*) FROM wall"

现在让我们回到你的HTML。使用jQuery("ul#wall li:first").fadeIn();淡化新发布的邮件后,您可以使用jQuery("ul#wall li:last").fadeOut();

淡出最旧的邮件

要制作页面列表,只需将消息总数除以每页的消息数即可确定需要的页数。然后你可以使用php for循环来回显出一堆链接,页面编号就像这样。

<? for($i=0; $i<$total_pages; $i++) { ?>
    <a href="index.php?page=<?=$i;?>"><?=$i;?></a>
<? } ?>

因此,当有人点击其中一个链接时,它会使用正确的消息重新加载您的网页。当然,你可以做更多的事情,但我认为这是基本的想法。我希望它有所帮助。