RT,js代码为function viewpage(p){
if(window.XMLHttpRequest){
var xmlReq = new XMLHttpRequest();
} else if(window.ActiveXObject) {
var xmlReq = new ActiveXObject('Microsoft.XMLHTTP');
}
var formData = "page="+p;
VAR URL="test1.php?"+formData;
xmlReq.onreadystatechange = function(){
if(xmlReq.readyState == 4){
document.getElementById('content2').innerHTML = xmlReq.responseText;
}
}
xmlReq.open("GET", "URL", true);
xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlReq.send();
return false;
}
分页处的代码为
if($page>1) echo "<a onclick=\"viewpage(".$first.")\" herf='#'>首页</a>|";
if ($page>1) echo "<a onclick=\"viewpage(".$prev.")\" href='#'>上页</a> | ";
if ($page<$page_count) echo "<a onclick=\"viewpage(".$next.")\" href='test1.php'>下页</a> | ";
if ($page<$page_count) echo "<a onclick=\"viewpage(".$last.")\" href='#'>尾页</a>";
现在我点下一页出现的是http://127.0.0.1/test1.php#这个页面,由于代码我是参考人家的,请问href='#'是什么意思? 还有回调函数里把值赋给了id=content2的东东,网上参考测试代码跟我自己的代码都没写这个接收值的ID控件,请问有关系么?求高手帮我改改,在线等谢谢了
if(window.XMLHttpRequest){
var xmlReq = new XMLHttpRequest();
} else if(window.ActiveXObject) {
var xmlReq = new ActiveXObject('Microsoft.XMLHTTP');
}
var formData = "page="+p;
VAR URL="test1.php?"+formData;
xmlReq.onreadystatechange = function(){
if(xmlReq.readyState == 4){
document.getElementById('content2').innerHTML = xmlReq.responseText;
}
}
xmlReq.open("GET", "URL", true);
xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlReq.send();
return false;
}
分页处的代码为
if($page>1) echo "<a onclick=\"viewpage(".$first.")\" herf='#'>首页</a>|";
if ($page>1) echo "<a onclick=\"viewpage(".$prev.")\" href='#'>上页</a> | ";
if ($page<$page_count) echo "<a onclick=\"viewpage(".$next.")\" href='test1.php'>下页</a> | ";
if ($page<$page_count) echo "<a onclick=\"viewpage(".$last.")\" href='#'>尾页</a>";
现在我点下一页出现的是http://127.0.0.1/test1.php#这个页面,由于代码我是参考人家的,请问href='#'是什么意思? 还有回调函数里把值赋给了id=content2的东东,网上参考测试代码跟我自己的代码都没写这个接收值的ID控件,请问有关系么?求高手帮我改改,在线等谢谢了
例如<div id="content2">请等待……</div>
这个容器需要ajax发送前就存在的,人家的代码没有可能是用js建立的,没有直接写出来你的页面没有这个容器怎能刷新呢?看你是新手,加个补充:不一定是div,但一定要是个能重写内容的容器
document.getElementById('content2').innerHTML = xmlReq.responseText;
//redyState值为4时表示响应已完成,可以获取并使用服务器的响应了
//content2是html页面中某个元素的ID,这一句的意思用获取的数据更新content2
//比如html代码中<div id='content2'></div>,xmrReq.responseText的内容是<p>获取数据成功</p>
//执行完这一句后,文档结构相应会变为<div id='content2'><p>获取数据成功</p></div>
}
href='#'是指锚点链接到本页面,如果没有绑定onclick事件,点击这样的链接后会跳转到本页面的顶部,但不会刷新页面。注意输出分页的代码:
if($page>1) echo "<a onclick=\"viewpage(".$first.")\" herf='#'>首页</a>|";
这里的viewpage()显然是一个自定义的javascript函数,功能肯定是进行页面跳转。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><script>
function viewpage(p){
if(window.XMLHttpRequest){
var xmlReq = new XMLHttpRequest();
} else if(window.ActiveXObject) {
var xmlReq = new ActiveXObject('Microsoft.XMLHTTP');
}
var formData = "page="+p;
VAR URL="test1.php?"+formData;
xmlReq.onreadystatechange = function(){
if(xmlReq.readyState == 4){
document.getElementById('content2').innerHTML = xmlReq.responseText;
}
}
xmlReq.open("GET", "URL", true);
xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlReq.send();
return false;
}
</script> <body>
<div id="content2">
<?php
$pagesize=1;
echo $_GET['page'];
@ $db = new mysqli('localhost', 'root', 'he251251', 'test');
if (mysqli_connect_errno())
{
echo 'Error: Could not connect to database. Please try again later.';
exit;
}
$sql="select * from data_players";
$result = $db->query($sql); $amount=$result->num_rows;
//计算总共有多少页
if($amount)
{
if($amount<$pagesize) //如果总数据量少于$Pagesize 那么只有一页
{
$page_count=1;
}
if($amount%$pagesize) //取总数除以每页,如果有余数,则页数等于总数据量除以每页数再+1
{
$page_count=(int)($amount/$pagesize)+1;
}
else //如果没有余数,则页数等于总数除以每页数
{
$page_count=$amount/$pagesize;
}
}
else
{
$page_count=0;
}
//获取当前页数
if(isset($_GET['page']))
{
$page=intval($_GET['page']);
echo $page;
}
else
{
$page=1;
}
$first=1;
$prev=$page-1;
$next=$page+1;
$last=$page_count;
//记录偏移量
$offser=$pagesize*($page-1);
if($amount)
{
$sql="select * from data_players order by pid limit ".($page-1)*$pagesize.",".$pagesize;
//echo $sql;
//$result=mysql_query($sql);
$result = $db->query($sql);
$num_results=$result->num_rows;
echo "<table border=\"1\" id=\"tb\">";
echo "<tr bgcolor=\"#6699CC\"><td>用户名</td><td>用户密码</td><td>昵称</td><td>角色</td><td>性别</td><td>注册时间</td></tr>";
for ($i=0; $i <$num_results; $i++)
{
$row=$result->fetch_assoc();
//输出用户名,密码和昵称
echo "<tr><td>".$row['uname']."</td><td>".$row['pwd']."</td><td>".$row['nick']."</td>";
//输出角色
switch($row['role'])
{
case 1:
echo "<td>法师</td>";
break;
case 2:
echo "<td>术士</td>";
break;
}
//输出性别
switch($row['sex'])
{
case 1:
echo "<td>男</td>";
break;
case 2:
echo "<td>女</td>";
break;
}
//输出注册时间
$regdate=date('Y-m-d H:i:s',$row['reg_time']);
echo "<td>".$regdate."</td>";
}
echo "</tr></table>\n";
}
echo "<TABLE style=\"MARGIN-TOP: 30px\" cellSpacing=0 cellPadding=0 width=\"100%\"";
echo "border=0>";
echo "<TBODY><TR><TD colSpan=3 height=20>";
echo "<DIV align=center>";
echo "<p align=left><FONT color=red>第".$page."页/共".$page_count."页|共".$amount."条记录</FONT>|";
if($page>1) echo "<a onclick=\"viewpage(".$first.")\" herf='#'>首页</a>|";
if ($page>1) echo "<a onclick=\"viewpage(".$prev.")\" href='#'>上页</a> | ";
if ($page<$page_count) echo "<a onclick=\"viewpage(2)\" href='#'>下页</a> | ";
if ($page<$page_count) echo "<a onclick=\"viewpage(".$last.")\" href='#'>尾页</a>"; echo "转到第<input maxLength=3 size=3 value=1 name=goto_page>页 <input hideFocus onclick=\"viewpage(document.all.goto_page.value)\" type=button value=Go name=cmd_goto>";
echo "</p></div></td></tr></tbody></table>";
?>
</div>
</body>
</html>
全代码在这里,每次点击,就出现http://127.0.0.1/test1.php#,然后页面五变化
如果会刷新闪烁,那么也就不是AJAX!