在进行php分页的时候可以正常显示分页页码如下图
但是当点击数字的时候,就会显示异常,页码消失
经过一番折腾感觉应该是点击一次之后参数传递方式的问题。找到一篇文章:php 分页显示数据 post参数传递问题解决方法
今日php实现显示数据分页,竟遇到类似如下问题
Notice: Undefined index: content in D:\Apache2.2\htdocs\pagefenye.php on line 18
琢磨半天,终得解决。
问题原因:因有post参出,点击诸如“下一页”等时,参数传递己变为get,而非post。
解决方案:
step1 使用$_REQUEST代替$_POST,$_REQUEST既可用于POST方法传递来的参数
也可用于GET方法传递的参数
step2 对form的post参数在换页时要重新传递
两个相关的文件贴一下:
<!--search.php:站内搜索函数--------------------->
<?php
/*session_start();
$search=$_REQUEST["search"];
$_SESSION["search"]=$search;
$keyword=$_REQUEST["keyword"];
$_SESSION["keyword"]=$keyword;*/
require_once("sys_conf.inc");
ini_set("error_reporting","E_ALL & ~E_NOTICE");
/**************************************************
/*功能:查询content字段包含$keyword的所有留言记录
/*输入:查询关键字
/*输出:查询数组
/**************************************************/
function search($keyword,$content)
{
$count=count($content);
$j=0;
$ArrSearch=array(); //结果数组
for ($i=0;$i<$count;$i++)
{
if (ereg($keyword,$content[$i])) //判断cotent[$i]中是否含有$keyword关键字,如果有,则条件成立
{
//把关键字用红颜色突出显示,并放入结果数组
$ArrSearch[$j]=str_replace($keyword,"<font color=red><b>$keyword</b></font>",$content[$i]);
$j++;
}
}
return $ArrSearch;
}
/**************************************************
/*功能:查询content字段包含$keyword的所有留言记录的rid
/*输入:查询关键字
/*输出:rid数组
/**************************************************/
function searchid($keyword,$rid,$content)
{
$count=count($content);
$j=0;
$Arrid=array(); //结果数组
for ($i=0;$i<$count;$i++)
{
if (ereg($keyword,$content[$i])) //判断cotent[$i]中是否含有$keyword关键字,如果有,则条件成立
{
$Arrid[$j]=$rid[$i];
$j++;
}
}
return $Arrid;
}
//初始化
$one_page_line=3; //每页的最大记录数
$content=array(); //数组,包含所有记录的content属性内容
$id=array(); //数组,包含所有记录的rid属性内容
$ArrSearch=array(); //数组,包含查询结果
$Arrid=array(); //数组,包含查询结果记录的编号
//查询数据库,获取$content值
$link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD);
mysql_select_db($DBNAME);
$str="select rid,content from guestbook";
$result=mysql_query($str,$link_id);
//循环将数据库中值写入数组
$i=0;
while(list($rid,$con)=mysql_fetch_row($result))
{
$content[$i]=$con;
$id[$i]=$rid;
$i++;
}
mysql_close($link_id);
//调用search()函数,查询关键字
if (isset($_REQUEST["search"]) and isset($_REQUEST["keyword"]) and $_REQUEST["keyword"]!="")
{
$ArrSearch=search($_REQUEST["keyword"],$content);
$Arrid=searchid($_REQUEST["keyword"],$id,$content);
}
//输出全部数据
else
{
$ArrSearch=$content;
$Arrid=$id; //存储查询结果的所有主键rid
}
//print_r($ArrSearch);
//print_r($Arrid);
$count =count($ArrSearch);
?>
<!--查询结果显示-->
<?php
//session_start();
//ini_set("error_reporting","E_ALL & ~E_NOTICE");
include "search.php"
?>
<html>
<head>
<title>Search Inside</title>
</head>
<body>
<table width="68%" border="0">
<tr>
<td>
<?php
ini_set("error_reporting","E_ALL & ~E_NOTICE");
$int_page_count = $count; //Query Total
$int_page_num = ceil($int_page_count/$one_page_line); //Total pages
echo "<font color=#CC33FF>Paging:";
$search=$_REQUEST["search"];
$keyword=$_REQUEST["keyword"];
for ($i = 1;$i <= $int_page_num;$i++)
{
if ( isset($search) and isset($keyword) and $keyword!="")
echo "<a href='booklist.php?search=$search&keyword=$keyword&page=$i'> ".$i."</a> ";
}
echo "</font>";
if ( isset($search) and isset($keyword) and $keyword!="")
{
echo "<br /><center>";
echo "Search result contained keywords <font color=red><b>".$_POST["keyword"]."</b></font> total <font color=red>".$count."</font></center>";
}
?>
</td>
<td>
<p align="right">Total<font color=red><?php echo " $count";?></font></p>
</td>
</tr>
</table>
<table width="68%" border="0" align="center">
<?php
if (isset($page) or $page=="")
{
$page=empty($_GET['page'])?1:$_GET['page'];
$begin_line=$int_page_count-($page-1)*$one_page_line;
if($begin_line<$one_page_line)
$one_page_line=$begin_line;
for ($j=$begin_line;$j>($begin_line-$one_page_line);$j--)
{
echo "<tr><td align=right colspan=2>";
echo "<a href=replylist.php?&recordid=".$Arrid[$j-1].">Scan reply</a> ";
echo "<a href=reply.php?task=reply&recordid=".$Arrid[$j-1].">Reply</a> ";
echo "<a href=update.php?recordid=".$Arrid[$j-1].">Edit</a> ";
echo "<a href=delete.php?recordid=".$Arrid[$j-1].">Delete</a> ";
echo "No.<font color=red>$j</font></td></tr>";
print_r ($ArrSearch[$j-1]);
}
}
?>
</table>
<p align=center><a href="#" οnclick=history.back()>Back</a></p>
</body>
</html>
相关阅读: