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

在进行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>

相关阅读:

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

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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值