Home >Backend Development >PHP Tutorial >PHP分页问题,求大神指导

PHP分页问题,求大神指导

WBOY
WBOYOriginal
2016-06-23 14:10:28727browse

<html> <head> <meta charset="UTF-8"></head> <script type="text/javascript" src="http://localhost/jquery.js" ></script><script type="text/javascript" > function aurl(i){ var url = window.location.href; if(url.indexOf('?')>0){   url=url.substring(0,url.indexOf('?')) ;} url=url+"?page="+i; document.getElementById("documentForm").action=url; document.getElementById("insu").click();  }</script><body    > <form   id="documentForm"   method="POST"> <p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" /> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php$key = $_POST["key"]; if($key==""){  echo "请输入搜索条件";	return;}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($page == ""){    $page = 1;}$wsdl="http://pica.chalwin.com/service/JsAccessWebService.asmx?wsdl";$client = new SoapClient($wsdl);$param = array('NodeId'=>'1','key'=>$key,'pageIndex'=>$page,'pageSize'=>$page_size);//传参$ret = $client->NewsSearch($param);//执行获取新闻的方法//print_r ($ret);if(isset($ret)&&$ret){ foreach($ret->NewsSearchResult->InheritanceNews as $item) 	{   		echo "\n<table border=1 cellspacing='0' width='30%'>\n<tr>";		echo "<td>$item->Title</td>\n";		echo "</tr>";	}}	else	{		echo 'no user';	}	//总页数		$totalPage = ceil(($item->NewsCount)/$page_size);		//上一页链接		$Prev = $page - 1;		if ($Prev < 1)		{			$Prev = 1;		}		//下一页链接		$Next = $page + 1;		if ($Next > $totalPage)		{			$Next = $totalPage;		}		//输出上一页链接		if ($page <> 1)		{			echo '<span><a href="javascript:aurl(1)">First </a></span>';			echo '<span><a href="javascript:aurl(' . $Prev . ')">Prev</a></span>';		}		else		{			echo '<span>First</span>';			echo '<span>Prev</span>';		}		//页码数字链接		//显示的数字个数		$pageNumber = 5;		//页码数算法		$pagebegin = $page - $pageNumber;		if ($page == 1)		{			$pageend = $pageNumber;		}		else		{			$pageend = $page + $pageNumber;		}		if ($pagebegin <= 0)		{			$pagebegin = 1;		}		if ($pageend > $totalPage)		{			$pageend = $totalPage;		}		//一次向前翻$pageNumber行		if ($page > $pageNumber)		{			echo '<span><a href="javascript:aurl('. ($page - $pageNumber) . ')"><<</a></span>';		}		//输出动态生成的页码链接		for ($i = $pagebegin; $i <= $pageend; $i++)		{			if ($i == $page)			{				echo '<span style="background:#FFCC99">' . $i . '</span>';			}			else			{				echo '<span><a href="javascript:aurl('. $i . ')">' . $i . '</a></span>';			}		}		//一次向后翻$pageNumber行		if (($totalPage - $page) > 5)		{			echo '<span><a href="javascript:aurl('. ($page + $pageNumber) . ')">>></a></span>';		}		//输出下一页链接		if ($page <> $totalPage)		{			echo '<span><a href="javascript:aurl('. $Next .')">Next</a></span>';			echo '<span><a href="javascript:aurl('. $totalPage .')">Last</a></span>';		}		else		{			echo '<span>Next</span>';			echo '<span>Last</span>';		}	?></body>  </html> 

代码如上:
初始查询结果如下:

问题1:分页显示的为啥在最后一条数据的上面呢?
问题2:点击下一页的时候 ,搜索条件没了?

问题3: 点击最后一页的时候报错了。


Ps:本人PHP初学者,搞得有点头大了~ 求大神们帮忙看下,万分感谢


回复讨论(解决方案)

有没有人啊

foreach循环最后少加上了一个吧

网上有分页的类,下一个看看

foreach循环最后少加上了一个吧
是的,这里确实少了一个,感谢哈

网上有分页的类,下一个看看
初学者,你不知道啊,太复杂的看起来打都看不懂。


还有人吗?剩下的2个问题都是头大问题

if($key==""){  echo "请输入搜索条件";    return;   $_SESSION['key'] = $key;//这里把KEY保存到session}<p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" /><?=$_SESSION[key] ?> </p>

if($key==""){  echo "请输入搜索条件";    return;   $_SESSION['key'] = $key;//这里把KEY保存到session}<p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" /><?=$_SESSION[key] ?> </p>
 
大清早,迷糊写错了。。
"/>


if($key==""){  echo "请输入搜索条件";    return;   $_SESSION['key'] = $key;//这里把KEY保存到session}<p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" /><?=$_SESSION[key] ?> </p>
 
大清早,迷糊写错了。。
"/>
iput报错了~Value这里绑定报错啦


if($key==""){  echo "请输入搜索条件";    return;   $_SESSION['key'] = $key;//这里把KEY保存到session}<p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" /><?=$_SESSION[key] ?> </p>
 
大清早,迷糊写错了。。
"/>

<form   id="documentForm"   method="POST"> <p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" value="<?=$_SESSION[key] ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> 

果然还是迷糊了。应该写在else里面,如果$key不为空再写进session。
"/>
加上引号
我再看看第三个

首先,这里你得明白一个原理:url带参数过来的是GET提交的,需要用$_GET接收数据

还有,分页的时候链接需要把所有参数传递过去,比如你这里的就应该把key这个参数传递过去,即形式如:
a.php?key=$key&page=2 这样的格式
最后一点:$key = $_POST["key"]; 要改成$key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];
最后用下面这个放在你的input里 
"/>

果然还是迷糊了。应该写在else里面,如果$key不为空再写进session。
"/>
加上引号
我再看看第三个
加上引号还是有错哦。

首先,这里你得明白一个原理:url带参数过来的是GET提交的,需要用$_GET接收数据

还有,分页的时候链接需要把所有参数传递过去,比如你这里的就应该把key这个参数传递过去,即形式如:
a.php?key=$key&page=2 这样的格式
最后一点:$key = $_POST["key"]; 要改成$key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];
最后用下面这个放在你的input里 
"/>
还是input标签这里报错了~

<html> <head> <meta charset="UTF-8"></head> <script type="text/javascript" src="http://localhost/jquery.js" ></script><script type="text/javascript" > function aurl(i){ var url = window.location.href; if(url.indexOf('?')>0){   url=url.substring(0,url.indexOf('?')) ;} url=url+"?page="+i; document.getElementById("documentForm").action=url; document.getElementById("insu").click();  }</script><body > <form   id="documentForm"   method="POST"> <p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" value="<?php echo $key ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php//$key = $_POST["key"]; $key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];if($key==""){  echo "请输入搜索条件";	return;}else{	 $_SESSION['key'] = $key;//这里把KEY保存到session}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($page == ""){    $page = 1;}$wsdl="http://pica.chalwin.com/service/JsAccessWebService.asmx?wsdl";$client = new SoapClient($wsdl);$param = array('NodeId'=>'1','key'=>$key,'pageIndex'=>$page,'pageSize'=>$page_size);//传参$ret = $client->NewsSearch($param);//执行获取新闻的方法//print_r ($ret);if(isset($ret)&&$ret){ foreach($ret->NewsSearchResult->InheritanceNews as $item) 	{   		echo "\n<table border=1 cellspacing='0' width='30%'>\n<tr>";		echo "<td>$item->Title</td>\n";		echo "</tr>";		echo "</table>";	}}	else	{		echo 'no user';	}	//总页数		$totalPage = ceil(($item->NewsCount)/$page_size);		//上一页链接		$Prev = $page - 1;		if ($Prev < 1)		{			$Prev = 1;		}		//下一页链接		$Next = $page + 1;		if ($Next > $totalPage)		{			$Next = $totalPage;		}		//输出上一页链接		if ($page <> 1)		{			echo '<span><a href="javascript:aurl(1)">First </a></span>';			echo '<span><a href="javascript:aurl(' . $Prev . ')">Prev</a></span>';		}		else		{			echo '<span>First</span>';			echo '<span>Prev</span>';		}		//页码数字链接		//显示的数字个数		$pageNumber = 5;		//页码数算法		$pagebegin = $page - $pageNumber;		if ($page == 1)		{			$pageend = $pageNumber;		}		else		{			$pageend = $page + $pageNumber;		}		if ($pagebegin <= 0)		{			$pagebegin = 1;		}		if ($pageend > $totalPage)		{			$pageend = $totalPage;		}		//一次向前翻$pageNumber行		if ($page > $pageNumber)		{			echo '<span><a href="javascript:aurl('. ($page - $pageNumber) . ')"><<</a></span>';		}		//输出动态生成的页码链接		for ($i = $pagebegin; $i <= $pageend; $i++)		{			if ($i == $page)			{				echo '<span style="background:#FFCC99">' . $i . '</span>';			}			else			{				echo '<span><a href="javascript:aurl('. $i . ')">' . $i . '</a></span>';			}		}		//一次向后翻$pageNumber行		if (($totalPage - $page) > 5)		{			echo '<span><a href="javascript:aurl('. ($page + $pageNumber) . ')">>></a></span>';		}		//输出下一页链接		if ($page <> $totalPage)		{			echo '<span><a href="javascript:aurl('. $Next .')">Next</a></span>';			echo '<span><a href="javascript:aurl('. $totalPage .')">Last</a></span>';		}		else		{			echo '<span>Next</span>';			echo '<span>Last</span>';		}	?></body>  </html> 

现在代码这样的

Value不管是这样绑定还是前面那位大神说的_SESSION绑定都有错。
是不是我哪里写错了呢

<html> <head> <meta charset="UTF-8"></head> <script type="text/javascript" src="http://localhost/jquery.js" ></script><script type="text/javascript" > function aurl(i){ var url = window.location.href; if(url.indexOf('?')>0){   url=url.substring(0,url.indexOf('?')) ;} url=url+"?page="+i; document.getElementById("documentForm").action=url; document.getElementById("insu").click();  }</script><body > <form   id="documentForm"   method="POST"> <p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" value="<?php echo $key ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php//$key = $_POST["key"]; $key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];if($key==""){  echo "请输入搜索条件";	return;}else{	 $_SESSION['key'] = $key;//这里把KEY保存到session}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($page == ""){    $page = 1;}$wsdl="http://pica.chalwin.com/service/JsAccessWebService.asmx?wsdl";$client = new SoapClient($wsdl);$param = array('NodeId'=>'1','key'=>$key,'pageIndex'=>$page,'pageSize'=>$page_size);//传参$ret = $client->NewsSearch($param);//执行获取新闻的方法//print_r ($ret);if(isset($ret)&&$ret){ foreach($ret->NewsSearchResult->InheritanceNews as $item) 	{   		echo "\n<table border=1 cellspacing='0' width='30%'>\n<tr>";		echo "<td>$item->Title</td>\n";		echo "</tr>";		echo "</table>";	}}	else	{		echo 'no user';	}	//总页数		$totalPage = ceil(($item->NewsCount)/$page_size);		//上一页链接		$Prev = $page - 1;		if ($Prev < 1)		{			$Prev = 1;		}		//下一页链接		$Next = $page + 1;		if ($Next > $totalPage)		{			$Next = $totalPage;		}		//输出上一页链接		if ($page <> 1)		{			echo '<span><a href="javascript:aurl(1)">First </a></span>';			echo '<span><a href="javascript:aurl(' . $Prev . ')">Prev</a></span>';		}		else		{			echo '<span>First</span>';			echo '<span>Prev</span>';		}		//页码数字链接		//显示的数字个数		$pageNumber = 5;		//页码数算法		$pagebegin = $page - $pageNumber;		if ($page == 1)		{			$pageend = $pageNumber;		}		else		{			$pageend = $page + $pageNumber;		}		if ($pagebegin <= 0)		{			$pagebegin = 1;		}		if ($pageend > $totalPage)		{			$pageend = $totalPage;		}		//一次向前翻$pageNumber行		if ($page > $pageNumber)		{			echo '<span><a href="javascript:aurl('. ($page - $pageNumber) . ')"><<</a></span>';		}		//输出动态生成的页码链接		for ($i = $pagebegin; $i <= $pageend; $i++)		{			if ($i == $page)			{				echo '<span style="background:#FFCC99">' . $i . '</span>';			}			else			{				echo '<span><a href="javascript:aurl('. $i . ')">' . $i . '</a></span>';			}		}		//一次向后翻$pageNumber行		if (($totalPage - $page) > 5)		{			echo '<span><a href="javascript:aurl('. ($page + $pageNumber) . ')">>></a></span>';		}		//输出下一页链接		if ($page <> $totalPage)		{			echo '<span><a href="javascript:aurl('. $Next .')">Next</a></span>';			echo '<span><a href="javascript:aurl('. $totalPage .')">Last</a></span>';		}		else		{			echo '<span>Next</span>';			echo '<span>Last</span>';		}	?></body>  </html> 

现在代码这样的

Value不管是这样绑定还是前面那位大神说的_SESSION绑定都有错。
是不是我哪里写错了呢

你可能没开短标签支持吧。,
 "/>

我这里现在运行良好,至于第三个问题。应该不是你的问题
你搜索新闻的时候最后一页会出现错误。。
你把关键词改成 ‘如何’ 试试  看最后一页还会不会报错。
他的信息流好像是有问题


<html> <head> <meta charset="UTF-8"></head> <script type="text/javascript" src="http://localhost/jquery.js" ></script><script type="text/javascript" > function aurl(i){ var url = window.location.href; if(url.indexOf('?')>0){   url=url.substring(0,url.indexOf('?')) ;} url=url+"?page="+i; document.getElementById("documentForm").action=url; document.getElementById("insu").click();  }</script><body > <form   id="documentForm"   method="POST"> <p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" value="<?php echo $key ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php//$key = $_POST["key"]; $key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];if($key==""){  echo "请输入搜索条件";	return;}else{	 $_SESSION['key'] = $key;//这里把KEY保存到session}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($page == ""){    $page = 1;}$wsdl="http://pica.chalwin.com/service/JsAccessWebService.asmx?wsdl";$client = new SoapClient($wsdl);$param = array('NodeId'=>'1','key'=>$key,'pageIndex'=>$page,'pageSize'=>$page_size);//传参$ret = $client->NewsSearch($param);//执行获取新闻的方法//print_r ($ret);if(isset($ret)&&$ret){ foreach($ret->NewsSearchResult->InheritanceNews as $item) 	{   		echo "\n<table border=1 cellspacing='0' width='30%'>\n<tr>";		echo "<td>$item->Title</td>\n";		echo "</tr>";		echo "</table>";	}}	else	{		echo 'no user';	}	//总页数		$totalPage = ceil(($item->NewsCount)/$page_size);		//上一页链接		$Prev = $page - 1;		if ($Prev < 1)		{			$Prev = 1;		}		//下一页链接		$Next = $page + 1;		if ($Next > $totalPage)		{			$Next = $totalPage;		}		//输出上一页链接		if ($page <> 1)		{			echo '<span><a href="javascript:aurl(1)">First </a></span>';			echo '<span><a href="javascript:aurl(' . $Prev . ')">Prev</a></span>';		}		else		{			echo '<span>First</span>';			echo '<span>Prev</span>';		}		//页码数字链接		//显示的数字个数		$pageNumber = 5;		//页码数算法		$pagebegin = $page - $pageNumber;		if ($page == 1)		{			$pageend = $pageNumber;		}		else		{			$pageend = $page + $pageNumber;		}		if ($pagebegin <= 0)		{			$pagebegin = 1;		}		if ($pageend > $totalPage)		{			$pageend = $totalPage;		}		//一次向前翻$pageNumber行		if ($page > $pageNumber)		{			echo '<span><a href="javascript:aurl('. ($page - $pageNumber) . ')"><<</a></span>';		}		//输出动态生成的页码链接		for ($i = $pagebegin; $i <= $pageend; $i++)		{			if ($i == $page)			{				echo '<span style="background:#FFCC99">' . $i . '</span>';			}			else			{				echo '<span><a href="javascript:aurl('. $i . ')">' . $i . '</a></span>';			}		}		//一次向后翻$pageNumber行		if (($totalPage - $page) > 5)		{			echo '<span><a href="javascript:aurl('. ($page + $pageNumber) . ')">>></a></span>';		}		//输出下一页链接		if ($page <> $totalPage)		{			echo '<span><a href="javascript:aurl('. $Next .')">Next</a></span>';			echo '<span><a href="javascript:aurl('. $totalPage .')">Last</a></span>';		}		else		{			echo '<span>Next</span>';			echo '<span>Last</span>';		}	?></body>  </html> 

现在代码这样的

Value不管是这样绑定还是前面那位大神说的_SESSION绑定都有错。
是不是我哪里写错了呢

你可能没开短标签支持吧。,
 "/>

我这里现在运行良好,至于第三个问题。应该不是你的问题
你搜索新闻的时候最后一页会出现错误。。
你把关键词改成 ‘如何’ 试试  看最后一页还会不会报错。
他的信息流好像是有问题
还是不行,短标签支持怎么开?


<html> <head> <meta charset="UTF-8"></head> <script type="text/javascript" src="http://localhost/jquery.js" ></script><script type="text/javascript" > function aurl(i){ var url = window.location.href; if(url.indexOf('?')>0){   url=url.substring(0,url.indexOf('?')) ;} url=url+"?page="+i; document.getElementById("documentForm").action=url; document.getElementById("insu").click();  }</script><body > <form   id="documentForm"   method="POST"> <p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" value="<?php echo $key ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php//$key = $_POST["key"]; $key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];if($key==""){  echo "请输入搜索条件";	return;}else{	 $_SESSION['key'] = $key;//这里把KEY保存到session}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($page == ""){    $page = 1;}$wsdl="http://pica.chalwin.com/service/JsAccessWebService.asmx?wsdl";$client = new SoapClient($wsdl);$param = array('NodeId'=>'1','key'=>$key,'pageIndex'=>$page,'pageSize'=>$page_size);//传参$ret = $client->NewsSearch($param);//执行获取新闻的方法//print_r ($ret);if(isset($ret)&&$ret){ foreach($ret->NewsSearchResult->InheritanceNews as $item) 	{   		echo "\n<table border=1 cellspacing='0' width='30%'>\n<tr>";		echo "<td>$item->Title</td>\n";		echo "</tr>";		echo "</table>";	}}	else	{		echo 'no user';	}	//总页数		$totalPage = ceil(($item->NewsCount)/$page_size);		//上一页链接		$Prev = $page - 1;		if ($Prev < 1)		{			$Prev = 1;		}		//下一页链接		$Next = $page + 1;		if ($Next > $totalPage)		{			$Next = $totalPage;		}		//输出上一页链接		if ($page <> 1)		{			echo '<span><a href="javascript:aurl(1)">First </a></span>';			echo '<span><a href="javascript:aurl(' . $Prev . ')">Prev</a></span>';		}		else		{			echo '<span>First</span>';			echo '<span>Prev</span>';		}		//页码数字链接		//显示的数字个数		$pageNumber = 5;		//页码数算法		$pagebegin = $page - $pageNumber;		if ($page == 1)		{			$pageend = $pageNumber;		}		else		{			$pageend = $page + $pageNumber;		}		if ($pagebegin <= 0)		{			$pagebegin = 1;		}		if ($pageend > $totalPage)		{			$pageend = $totalPage;		}		//一次向前翻$pageNumber行		if ($page > $pageNumber)		{			echo '<span><a href="javascript:aurl('. ($page - $pageNumber) . ')"><<</a></span>';		}		//输出动态生成的页码链接		for ($i = $pagebegin; $i <= $pageend; $i++)		{			if ($i == $page)			{				echo '<span style="background:#FFCC99">' . $i . '</span>';			}			else			{				echo '<span><a href="javascript:aurl('. $i . ')">' . $i . '</a></span>';			}		}		//一次向后翻$pageNumber行		if (($totalPage - $page) > 5)		{			echo '<span><a href="javascript:aurl('. ($page + $pageNumber) . ')">>></a></span>';		}		//输出下一页链接		if ($page <> $totalPage)		{			echo '<span><a href="javascript:aurl('. $Next .')">Next</a></span>';			echo '<span><a href="javascript:aurl('. $totalPage .')">Last</a></span>';		}		else		{			echo '<span>Next</span>';			echo '<span>Last</span>';		}	?></body>  </html> 

现在代码这样的

Value不管是这样绑定还是前面那位大神说的_SESSION绑定都有错。
是不是我哪里写错了呢

你可能没开短标签支持吧。,
 "/>

我这里现在运行良好,至于第三个问题。应该不是你的问题
你搜索新闻的时候最后一页会出现错误。。
你把关键词改成 ‘如何’ 试试  看最后一页还会不会报错。
他的信息流好像是有问题
第三个问题是,如果我输出的是一条数据就会报错,这是为啥呢

<?phpsession_start();$_SESSION['key'] = $_POST["key"] ;?><html> <head> <meta charset="UTF-8"></head> <script type="text/javascript" src="http://localhost/jquery.js" ></script><script type="text/javascript" > function aurl(i){ var url = window.location.href; if(url.indexOf('?')>0){   url=url.substring(0,url.indexOf('?')) ;} url=url+"?page="+i; document.getElementById("documentForm").action=url; document.getElementById("insu").click();  }</script><body    > <form   id="documentForm"   method="POST" > <p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" value="<?=$_SESSION['key'] ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php$key = $_POST["key"]; if($key==""){  echo "请输入搜索条件";    return;    }else{    unset($_SESSION['key']);}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($page == ""){    $page = 1;}$wsdl="http://pica.chalwin.com/service/JsAccessWebService.asmx?wsdl";$client = new SoapClient($wsdl);$param = array('NodeId'=>'1','key'=>$key,'pageIndex'=>$page,'pageSize'=>$page_size);//传参$ret = $client->NewsSearch($param);//执行获取新闻的方法//print_r ($ret);if(isset($ret)&&$ret){ foreach($ret->NewsSearchResult->InheritanceNews as $item)     {           echo "\n<table border=1 cellspacing='0' width='30%'>\n<tr>";        echo "<td>$item->Title</td>\n";        echo "</tr>"."</table>";    }}    else    {        echo 'no user';    }    //总页数        $totalPage = ceil(($item->NewsCount)/$page_size);        //上一页链接        $Prev = $page - 1;        if ($Prev < 1)        {            $Prev = 1;        }        //下一页链接        $Next = $page + 1;        if ($Next > $totalPage)        {            $Next = $totalPage;        }        //输出上一页链接        if ($page <> 1)        {            echo '<span><a href="javascript:aurl(1)">First </a></span>';            echo '<span><a href="javascript:aurl(' . $Prev . ')">Prev</a></span>';        }        else        {            echo '<span>First</span>';            echo '<span>Prev</span>';        }        //页码数字链接        //显示的数字个数        $pageNumber = 5;        //页码数算法        $pagebegin = $page - $pageNumber;        if ($page == 1)        {            $pageend = $pageNumber;        }        else        {            $pageend = $page + $pageNumber;        }        if ($pagebegin <= 0)        {            $pagebegin = 1;        }        if ($pageend > $totalPage)        {            $pageend = $totalPage;        }        //一次向前翻$pageNumber行        if ($page > $pageNumber)        {            echo '<span><a href="javascript:aurl('. ($page - $pageNumber) . ')"><<</a></span>';        }        //输出动态生成的页码链接        for ($i = $pagebegin; $i <= $pageend; $i++)        {            if ($i == $page)            {                echo '<span style="background:#FFCC99">' . $i . '</span>';            }            else            {                echo '<span><a href="javascript:aurl('. $i . ')">' . $i . '</a></span>';            }        }        //一次向后翻$pageNumber行        if (($totalPage - $page) > 5)        {            echo '<span><a href="javascript:aurl('. ($page + $pageNumber) . ')">>></a></span>';        }        //输出下一页链接        if ($page <> $totalPage)        {            echo '<span><a href="javascript:aurl('. $Next .')">Next</a></span>';            echo '<span><a href="javascript:aurl('. $totalPage .')">Last</a></span>';        }        else        {            echo '<span>Next</span>';            echo '<span>Last</span>';        }  ?></body>  </html> 


上面这段代码运行良好,在搜索‘新闻’的时候最后一页会出非法字符。
搜索‘如何’没有错误。搜索‘英语’也没错误。

<?phpsession_start();$_SESSION['key'] = $_POST["key"] ;?><html> <head> <meta charset="UTF-8"></head> <script type="text/javascript" src="http://localhost/jquery.js" ></script><script type="text/javascript" > function aurl(i){ var url = window.location.href; if(url.indexOf('?')>0){   url=url.substring(0,url.indexOf('?')) ;} url=url+"?page="+i; document.getElementById("documentForm").action=url; document.getElementById("insu").click();  }</script><body    > <form   id="documentForm"   method="POST" > <p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" value="<?=$_SESSION['key'] ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php$key = $_POST["key"]; if($key==""){  echo "请输入搜索条件";    return;    }else{    unset($_SESSION['key']);}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($page == ""){    $page = 1;}$wsdl="http://pica.chalwin.com/service/JsAccessWebService.asmx?wsdl";$client = new SoapClient($wsdl);$param = array('NodeId'=>'1','key'=>$key,'pageIndex'=>$page,'pageSize'=>$page_size);//传参$ret = $client->NewsSearch($param);//执行获取新闻的方法//print_r ($ret);if(isset($ret)&&$ret){ foreach($ret->NewsSearchResult->InheritanceNews as $item)     {           echo "\n<table border=1 cellspacing='0' width='30%'>\n<tr>";        echo "<td>$item->Title</td>\n";        echo "</tr>"."</table>";    }}    else    {        echo 'no user';    }    //总页数        $totalPage = ceil(($item->NewsCount)/$page_size);        //上一页链接        $Prev = $page - 1;        if ($Prev < 1)        {            $Prev = 1;        }        //下一页链接        $Next = $page + 1;        if ($Next > $totalPage)        {            $Next = $totalPage;        }        //输出上一页链接        if ($page <> 1)        {            echo '<span><a href="javascript:aurl(1)">First </a></span>';            echo '<span><a href="javascript:aurl(' . $Prev . ')">Prev</a></span>';        }        else        {            echo '<span>First</span>';            echo '<span>Prev</span>';        }        //页码数字链接        //显示的数字个数        $pageNumber = 5;        //页码数算法        $pagebegin = $page - $pageNumber;        if ($page == 1)        {            $pageend = $pageNumber;        }        else        {            $pageend = $page + $pageNumber;        }        if ($pagebegin <= 0)        {            $pagebegin = 1;        }        if ($pageend > $totalPage)        {            $pageend = $totalPage;        }        //一次向前翻$pageNumber行        if ($page > $pageNumber)        {            echo '<span><a href="javascript:aurl('. ($page - $pageNumber) . ')"><<</a></span>';        }        //输出动态生成的页码链接        for ($i = $pagebegin; $i <= $pageend; $i++)        {            if ($i == $page)            {                echo '<span style="background:#FFCC99">' . $i . '</span>';            }            else            {                echo '<span><a href="javascript:aurl('. $i . ')">' . $i . '</a></span>';            }        }        //一次向后翻$pageNumber行        if (($totalPage - $page) > 5)        {            echo '<span><a href="javascript:aurl('. ($page + $pageNumber) . ')">>></a></span>';        }        //输出下一页链接        if ($page <> $totalPage)        {            echo '<span><a href="javascript:aurl('. $Next .')">Next</a></span>';            echo '<span><a href="javascript:aurl('. $totalPage .')">Last</a></span>';        }        else        {            echo '<span>Next</span>';            echo '<span>Last</span>';        }  ?></body>  </html> 


上面这段代码运行良好,在搜索‘新闻’的时候最后一页会出非法字符。
搜索‘如何’没有错误。搜索‘英语’也没错误。
不知道为什么,就是最后只有一条数据的时候报错,搜索新闻第三页只有一条数据了就报错了,其他都没错
那个传值的没问题了。感谢你哈

你搜索‘田径运动会’,看是不是还出那个错误。如果出,就用我下面的代码
在foreach加了个if语句来判断结果。

<?phpsession_start ();$_SESSION['key'] = $_POST["key"] ;?>  <meta> <script></script><script> function aurl(i){ var url = window.location.href; if(url.indexOf('?')>0){   url=url.substring(0,url.indexOf('?')) ;} url=url+"?page="+i; document.getElementById("documentForm").action=url; document.getElementById("insu").click();  }</script> 
 

 输入关键字:
 "/> 

 

  

 
 '1','key'=>$key,'pageIndex'=>$page,'pageSize'=>$page_size);//传参$ret = $client->NewsSearch($param);//执行获取新闻的方法//print_r ($ret);if(isset($ret)&&$ret){    if (is_array($ret->NewsSearchResult->InheritanceNews)) {        foreach($ret->NewsSearchResult->InheritanceNews as $item) {           echo "\n\n";        echo "\n";        echo ""."
$item->Title
";        }    }else{        echo "\n\n";        echo "\n";        echo ""."
$ret->NewsSearchResult->InheritanceNews->title
";    }}    else    {        echo 'no user';    }    //总页数        $totalPage = ceil(($item->NewsCount)/$page_size);        //上一页链接        $Prev = $page - 1;        if ($Prev  $totalPage)        {            $Next = $totalPage;        }        //输出上一页链接        if ($page  1)        {            echo 'First ';            echo 'Prev';        }        else        {            echo 'First';            echo 'Prev';        }        //页码数字链接        //显示的数字个数        $pageNumber = 5;        //页码数算法        $pagebegin = $page - $pageNumber;        if ($page == 1)        {            $pageend = $pageNumber;        }        else        {            $pageend = $page + $pageNumber;        }        if ($pagebegin  $totalPage)        {            $pageend = $totalPage;        }        //一次向前翻$pageNumber行        if ($page > $pageNumber)        {            echo '';        }        //输出动态生成的页码链接        for ($i = $pagebegin; $i ' . $i . '';            }            else            {                echo '' . $i . '';            }        }        //一次向后翻$pageNumber行        if (($totalPage - $page) > 5)        {            echo '>>';        }        //输出下一页链接        if ($page  $totalPage)        {            echo 'Next';            echo 'Last';        }        else        {    
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:求一简单的正则表达式Next article:给个遍历的代码