这是我的问题。我尝试了很多东西,并意识到我现在可以在我的大脑上煮一个鸡蛋。我需要你的帮助。
我需要在发布内容的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上的未排序列表中添加分页?
答案 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>
<? } ?>
因此,当有人点击其中一个链接时,它会使用正确的消息重新加载您的网页。当然,你可以做更多的事情,但我认为这是基本的想法。我希望它有所帮助。