【发布时间】:2011-05-24 19:57:04
【问题描述】:
我正在尝试实现分页。一次显示一组 9 个产品。然后单击“查看更多”按钮后,div 的内容应通过 AJAX 刷新并显示下一组 9 个产品。这是 php 代码
if(!isset($_SESSION['current'])){
$query = "SELECT MAX(addedon) AS addedon FROM tags";
$result = mysql_query($query);
report($result);
$dated = mysql_fetch_assoc($result);
$recent = $dated['addedon'];
$_SESSION['current'] = $recent;
}
$query = "SELECT id, addedon
FROM tags
WHERE addedon <= '{$_SESSION['current']}'
ORDER BY addedon DESC
LIMIT 9
";
$result = mysql_query($query);
report($result);
while($row = mysql_fetch_assoc($result)){
$_SESSION['current'] = $row['addedon'];
$id = $row['id'];
$query = "SELECT name, image, cost
FROM tags, stock
WHERE tags.id={$id} AND stock.tagid = tags.id
";
$result1 = mysql_query($query);
report($result1);
$prodInfo = mysql_fetch_assoc($result1);
$pname = $prodInfo['name'];
$pimg = $prodInfo['image']; //the path to the actual image
$pcost = $prodInfo['cost'];
echo "<div class=\"oneproduct\">";
echo "<h3>{$pname}</h3><br />";
echo "<img src=\"{$pimg}\" height=\"{$ht}\" width=\"85px\" alt=\"prodImg\" /><br />";
echo "<span>Rs. {$pcost}</span>";
echo "<input type=\"image\" src=\"images/addcart.png\" class=\"addBtn\" />";
echo "</div>";
}
在获取并显示所有产品后,页面上的最后一个产品将存储为 SESSION 的“当前”变量。 问题是:ajax 东西总是返回最初的 9 个产品集,一旦我刷新页面,下一组产品就来了..如何让我的链接更改内容?
ajax 代码:
$("#viewMore").bind('click', function(){
$.ajax({
url:'showNineProds.php',
type:'POST',
dataType:'html',
success:function(data){
$("div#nineproducts").html(data);
},
error:function(xhr, status){
alert("Problem");
},
complete:function(xhr, status){
}
});
});
showNineProds.php 只是调用了上面已经写好的函数..
【问题讨论】:
-
report() 调用是做什么的?
-
您似乎没有传递任何可以让您对数据进行分页的参数。您只是每次都选择相同的数据。看看这个phpfreaks.com/tutorial/basic-pagination 让它工作,当你知道发生了什么时,你应该能够找出你的问题:-)
-
@cromestant 它只是用于错误报告......没什么大不了的
-
@martswite 我认为我不需要将任何参数发送到此处的页面..我的会话概念出现的数据..我只是使用 SESSION 来处理要获取的记录跨度>