php 分页显示数据 post参数传递问题解决方法

来源:互联网 发布:宏远体育工作感受 知乎 编辑:程序博客网 时间:2024/05/19 02:03

在进行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 pagesecho "<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="#" onclick=history.back()>Back</a></p></body></html>

相关阅读:

PHP分页类--支持URL和POST两种

php分页不用get用post代码实例


0 0
原创粉丝点击