如何解决jQuery ajax php:页面内容不刷新!
| 我正在尝试实现分页。一次显示一组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的'current'变量。
问题是: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只需调用上面已编写的函数。
解决方法
正确的方法是让客户端代码使用AJAX调用的参数指定要提取记录的“页”。通过使用这样的会话变量,服务器不知道在何时获取哪些记录。它总是要返回“下一个”结果。因此,无论何时加载该网页,它都将提供“下一个”记录集。无法在结果集中向后翻页。
基本上,您将在本地JavaScript值(或页面上的隐藏表单元素,但是您在页面上存储值)中存储当前结果集的信息,并且您的AJAX调用会将必要的信息发送到服务器以返回请求的结果集。
例如,您可能有一个本地JavaScript值,该值指示您正在查看的开始记录以及页面大小:
startRecord = 1;
pageSize = 10;
然后,如果单击“下一步”按钮,则AJAX调用将向服务器提供参数,告诉服务器要获取的内容:
startRecord + pageSize,pageSize
当然,您需要添加一点逻辑来确定您是在首页还是最后一页上禁用“上一个”和“下一个”功能。而且您可以做更多的事情(可变页面大小,过滤和搜索,排序等),但这是它的基本要旨。
,您似乎没有从ajax调用中发回信息。基本上,yoi可能正在获取数据库上的值,但似乎并没有将数据发送回调用。
您是否以某种格式回显结果集?我在代码中看不到。在任何情况下,您都无法从js访问$ session变量...这些是在php中可访问的服务器端。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。