我仍然在尝试更动态地更新我的sql查询,但我发现这很困难,因为我是PHP和jquery的新手。
我有一个主页(pagination.php),如下所示:
<?php
function generate_pagination($sql) {
include_once('config.php');
$per_page = 3;
//Calculating no of pages
$result = mysql_query($sql);
$count = mysql_fetch_row($result);
$pages = ceil($count[0]/$per_page);
//Pagination Numbers
for($i=1; $i<=$pages; $i++)
{
echo '<li class="page_numbers" id="'.$i.'">'.$i.'</li>';
}
}
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery_pagination.js"></script>
<div id="loading" ></div>
<div id="content" data-page="1"></div>
<ul id="pagination">
<?php generate_pagination("SELECT COUNT(*) FROM explore WHERE category='marketing'"); ?>
<a href="#" class="category" id="marketing">Marketing</a>
<a href="#" class="category" id="automotive">Automotive</a>
<a href="#" class="category" id="sports">Sports</a>正如您所看到的,脚本的顶部是计算分页的页数,然后根据此查询在数据库中的结果数显示页数:
<?php generate_pagination("SELECT COUNT(*) FROM explore WHERE category='marketing'");这就是我遇到的困难,我想让上面查询的类别部分更具动态性。因此,当用户单击这三个链接中的任何一个时,我希望使用jquery将所单击的链接的id放在查询的类别部分。
下面是我的jquery代码:
$("#pagination a").click(function () {
Display_Load();
var this_id = $(this).attr('id');
var pageNum = $('#content').attr('data-page');
$("#content").load("filter_marketing.php?page=" + pageNum +'&id='+this_id, Hide_Load());
});我希望这是有意义的,如果有人能在这方面帮助我,那就太好了。
发布于 2010-03-06 05:41:18
我认为有两件事需要改变。首先,GET "id“变量需要在sql语句中,请参见以下内容:
<?php generate_pagination("SELECT COUNT(*) FROM explore WHERE category='".mysql_real_escape($_GET['id'])."'"); ?>另一件事是,当您加载新内容时,还需要根据新内容信息更改分页。这将需要(1)另一个脚本(如pagination_links.php)或(2)调整您的分页脚本以仅返回generate_pagination函数的内容。
除了这两件事之外,它应该在概念上工作。Messy...but它应该可以工作。
发布于 2010-03-11 23:19:21
请记住,如果它是一个外部站点,则在执行此操作时需要小心。如果你正在用JS构建一个SQL查询,除非你在后端做一些检查,否则别人做SQL注入是非常容易的。我的建议是只传递某些参数,并使用PHP来构建查询本身。
https://stackoverflow.com/questions/2389822
复制相似问题