PHP怎样实现单击上一条、下一条按钮,页面不刷新,显示数据库中的上一条、下一条记录。

这里是网页的代码<?phpinclude'../config.php';$sql="select*from`xj_2009`";$query=mysql_query($s... 这里是网页的代码
<?php
include '../config.php';
$sql="select * from `xj_2009`";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
?>
<form action="ss.php" method="post"><br>
ID:<input type="text" name="id" value="<?php echo $row["id"]?>" /><br><br>
用户名:<input type="text" name="username" value="<?php echo $row["name"]?>" /><br><br>
<input type="submit" name="next" value="下一条"/>
</form>
网页显示如下:

数据表如下:xj_2009

可以从数据库中读取到值显示到网页的文本框中,现在有个问题,如果我想单击“下一条”按钮,在不刷新网页的情况下显示数据库中的下一条记录,怎么样实现啊,求大神指点啊,最好说的详细点啊,我是小白,刚开始学php。
就是点击按钮后产生如下效果
展开
 我来答
_超____
2013-04-17
知道答主
回答量:70
采纳率:0%
帮助的人:38.8万
展开全部

帮你简单的做了一下,剩下的你自己搞定。。。

这个是你的那段代码,然后我用了jquery的ajax 你自己去下一个。这个是index.php

<?php
header("Content-type: text/html; charset=utf-8");
include './config.php';
$sql="select * from `xj_2009`";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
?>
<script src="./jquery-1.6.2.min.js"></script>
<script>
function GetNext(id){
$.get("test.php", { sid: id},
function(data){
alert("Data Loaded: " + data);
});
}
</script>
<form action="ss.php" method="post"><br>
ID:<input type="text" name="id" value="<?php echo $row["id"]?>" /><br><br>
用户名:<input type="text" name="username" value="<?php echo $row["name"]?>" /><br><br>
<input type="button" name="next" onclick="GetNext(<?php echo $row["id"]?>)" value="下一条"/>
</form>

下面这个是ajax请求的页面test.php 

<?php
include './config.php';
$sql="select * from `xj_2009` where id > {$_GET['sid']} limit 1";
$query = mysql_query($sql);
$row = mysql_fetch_array($query,MYSQL_ASSOC);
$jsonencode = json_encode($row);
echo $jsonencode;
?>

已经可以获取到返回的json值了,剩下的你自己搞定。。

追问
这个我试了一下,好像
onclick="GetNext()"

这个语句只能取得第一次的id,不能跟随页面变化,所以点下一条只能取得第二条。。
追答

算了,那我帮你写个完整的吧。。

<?php
header("Content-type: text/html; charset=utf-8");
include './config.php';
$sql="select * from `xj_2009`";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
?>
<script src="./jquery-1.6.2.min.js"></script>
<script>
function GetNext(){
var id=$("#sid").val();
$.get("test.php", { sid: id},
function(data){
var jsObject = eval('('+data+')');
if(jsObject){
$("input[name='id']").val(jsObject['id']);
$("input[name='username']").val(jsObject['name']);
$("#sid").val(jsObject['id']);
//alert(jsObject['id']);
//alert("Data Loaded: " + data);
}else{
alert("已经获取不到数据了。");
}
});
}
</script>
<form action="ss.php" method="post"><br>
ID:<input type="text" name="id" value="<?php echo $row["id"]?>" /><br><br>
用户名:<input type="text" name="username" value="<?php echo $row["name"]?>" /><br><br>
<input type="hidden" name="sid" id="sid" value="<?php echo $row["id"]?>">
<input type="button" name="next" onclick="GetNext()" value="下一条"/>
</form>
香蕉_太极
2013-04-17
知道答主
回答量:3
采纳率:0%
帮助的人:3511
展开全部
很明显,用AJAX,也就是说你需要js的帮忙
思路的话三步
一,创建XMLHttpRequest实例
http = new XMLHttpRequest();

二,将页面数据传至指定的php文件中
http.open("GET",目标PHP文件路径,true);
http.send(null);

三,接收返回值,也就是PHP文件最终的echo。
var myText = http.responseText;

(楼上代码是分页的。。。)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
毅拉罐
2013-04-17 · TA获得超过584个赞
知道小有建树答主
回答量:525
采纳率:0%
帮助的人:263万
展开全部
<?php
include '../config.php';
$pagesize=1;
$sql="select * from xj_2009";
$result=mysql_query($sql);
$number=mysql_num_rows($result); //获取数据数量
$totalpage=ceil($number/$pagesize);
$pageno=$_GET['pageno'];
if ($pageno=='') {
$pageno=1;
}
$startno=($pageno-1)*$pagesize;//从第几个开始
$sql2="select * from xj_2009 limit ".$startno.",".$pagesize;
$row=mysql_query($sql2);
?>
<form action="ss.php" method="post"><br>
ID:<input type="text" name="id" value="<?php echo $row["id"]?>" /><br><br>
用户名:<input type="text" name="username" value="<?php echo $row["name"]?>" /><br><br>
<?php if($pageno==1){
echo "[首页][上页][<a href=?pageno=".($pageno+1).">下页</a>][<a href=?pageno=".$totalpage.">末页</a>]";
}
if($pageno==$totalpage){
echo "[<a href=?pageno=1>首页</a>][<a href=?pageno=".($pageno-1).">上页</a>][下页][末页]";
}
if($pageno>1 && $pageno<$totalpage){
echo "[<a href=?pageno=1>首页</a>][<a href=?pageno=".($pageno-1).">上页</a>][<a href=?pageno=".($pageno+1).">下页</a>][<a href=?pageno=".$totalpage.">末页</a>]";
}

?>

</form>
追问
额,这个是分页吧,网页是刷新的
追答
是啊   你想不刷新啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
遂棠
2013-04-17 · 超过13用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:36.3万
展开全部
没解决的话加我QQ306794930
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9746fdc
2013-04-17 · TA获得超过270个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:209万
展开全部
可以用AJAX实现,网上例子很多的。
追问
能具体说一下吗,或者给个例子,我仔细看一下,在网上查的时候都是稍微一点,看不太明白。
追答
var xmlhttp = null;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.xmlHTTP");
}else{
alert("XMLHttpRequest对象创建失败!!");
return;
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4) {
var now = document.getElementById(id);
if (xmlhttp.status == 200) {
var responseText = xmlhttp.responseText; //后台可以传回一个json格式的字符串,包含id和name
var result = eval(responseText);//result[0].id就是id;result[0].name就是name;可以用JS替换文本框
}}}
xmlhttp.open("GET",url,true);//url是访问的路径,可以是后台的servlet等
xmlhttp.setRequestHeader("If-Modified-Since","0");//清楚缓存,防止有的时候ajax不去后台查
xmlhttp.send(null);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式